Advertisement
Kamend1

03.Phonebook

Apr 3rd, 2025
419
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function attachEvents() {
  2.     let baseURL = `http://localhost:3030/jsonstore/phonebook`;
  3.     let loadBtn = document.getElementById('btnLoad');
  4.     let addBtn = document.getElementById('btnCreate');
  5.     let phoneBook = document.getElementById('phonebook');
  6.  
  7.     loadBtn.addEventListener('click', loadPhones);
  8.     addBtn.addEventListener('click', addPhone);
  9.  
  10.     async function loadPhones () {
  11.         try {
  12.             let response = await fetch(baseURL);
  13.             let phoneData = await response.json();
  14.             let phoneNumbers = Object.values(phoneData);
  15.  
  16.             phoneBook.replaceChildren();
  17.  
  18.             for (let entry of phoneNumbers) {
  19.                 let liItem = document.createElement('li');
  20.                 let deleteBtn = document.createElement('button');
  21.                 deleteBtn.textContent = 'Delete';
  22.                 deleteBtn.dataset.id = entry._id;
  23.                 deleteBtn.addEventListener('click', deletePhone);
  24.                 liItem.append(`${entry.person}: ${entry.phone}`);
  25.                 liItem.appendChild(deleteBtn);
  26.                
  27.                 phoneBook.appendChild(liItem);
  28.             }
  29.         } catch (error) {
  30.             console.error(error);
  31.         }
  32.     }
  33.  
  34.     async function deletePhone (event) {
  35.         const id = event.target.dataset.id;
  36.  
  37.         try {
  38.             await fetch(`${baseURL}/${id}`, {
  39.                 method: 'DELETE'
  40.             });
  41.  
  42.             loadPhones();
  43.         } catch (error) {
  44.             console.error('Failed to delete:', error);
  45.         }
  46.     }
  47.    
  48.  
  49.     async function addPhone () {
  50.         let newPerson = document.getElementById('person').value;
  51.         let newPhone = document.getElementById('phone').value;
  52.  
  53.         if (!newPerson || !newPhone) {
  54.             document.getElementById('person').value = '';
  55.             document.getElementById('phone').value = '';
  56.             return;
  57.         }
  58.  
  59.         let newEntry = {
  60.             person: newPerson,
  61.             phone: newPhone,
  62.         };
  63.  
  64.         newEntry = JSON.stringify(newEntry);
  65.  
  66.         await fetch(baseURL, {
  67.             method: 'post',
  68.             headers: { 'Content-type': 'application/json' },
  69.             body: newEntry,
  70.         });
  71.  
  72.         document.getElementById('person').value = '';
  73.         document.getElementById('phone').value = '';
  74.  
  75.         loadPhones();
  76.     }
  77. }
  78.  
  79. attachEvents();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement