Advertisement
Silviya7

Daily Calorie Counter

Apr 15th, 2024
753
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //TODO
  2. const baseURL='http://localhost:3030/jsonstore/tasks/';
  3.  
  4. const BtnLoadMeals= document.getElementById('load-meals');
  5. const BtnAddMeal=document.getElementById('add-meal');
  6. const BtnEdit= document.getElementById('edit-meal');
  7.  
  8. const ElementList= document.getElementById('list');
  9.  
  10. const Elementfood= document.getElementById('food');
  11. const Elementtime= document.getElementById('time');
  12. const Elementcalories= document.getElementById('calories');
  13. let idmeal;
  14.  
  15.     const LoadMeals = async()=> {
  16.     //Fetch all meals
  17.     const response = await fetch(baseURL);
  18.     const data= await response.json();
  19.    // console.log(Object.values(data));
  20.    
  21.     ElementList.innerHTML='';
  22.  
  23.     for (const meal of Object.values(data)) {        
  24.         const mealBtndiv= document.createElement('div');
  25.         mealBtndiv.id='meal-buttons';
  26.  
  27.         const BtnChange=document.createElement('button');
  28.         BtnChange.classList.add('change-meal');
  29.         BtnChange.textContent='Change';
  30.  
  31.         const BtnDelete=document.createElement('button');
  32.         BtnDelete.classList.add('delete-meal');
  33.         BtnDelete.textContent='Delete';
  34.  
  35.         mealBtndiv.appendChild(BtnChange);
  36.         mealBtndiv.appendChild(BtnDelete);
  37.  
  38.         idmeal= meal._id;
  39.         const Elementh1=document.createElement('h2');
  40.         Elementh1.textContent= meal.food;
  41.         const Elementhtime3=document.createElement('h3');
  42.         Elementhtime3.textContent= meal.time;
  43.         const Elementhcalories3=document.createElement('h3')
  44.         Elementhcalories3.textContent= meal.calories;
  45.  
  46.         const divMeal= document.createElement('div');
  47.         divMeal.classList.add('meal');
  48.         divMeal.appendChild(Elementh1);
  49.         divMeal.appendChild(Elementhtime3);
  50.         divMeal.appendChild(Elementhcalories3);
  51.         divMeal.appendChild(mealBtndiv);
  52.  
  53.         ElementList.appendChild(divMeal);
  54.  
  55.         BtnChange.addEventListener('click',()=>{
  56.  
  57.             //save currentid
  58.             idmeal= meal._id;
  59.  
  60.             Elementfood.value=meal.food;
  61.             Elementtime.value= meal.time;
  62.             Elementcalories.value= meal.calories;
  63.  
  64.             BtnEdit.removeAttribute('disabled');
  65.             BtnAddMeal.setAttribute('disabled','disabled');
  66.  
  67.             divMeal.remove();
  68.         });
  69.  
  70.         BtnDelete.addEventListener('click',async ()=>{
  71.  
  72.             const response= await fetch(`${baseURL}/${meal._id}`,{
  73.                method:'DELETE'
  74.             });
  75.  
  76.             divMeal.remove();
  77.         });
  78.  
  79.     }
  80.  
  81.     };
  82.  
  83. BtnLoadMeals.addEventListener('click',LoadMeals);
  84.  
  85. BtnAddMeal.addEventListener('click',async()=>{
  86.  
  87.     const food= Elementfood.value;
  88.     const time= Elementtime.value;
  89.     const calories= Elementcalories.value;
  90.   //create post request
  91.  
  92.   const response= await fetch(baseURL, {
  93.      method :'POST',
  94.      headers:{
  95.      'content-type':'application/json',
  96.      },
  97.      body: JSON.stringify({food,time,calories }),
  98.      });
  99.  
  100.   await LoadMeals();
  101.    Elementfood.value="";
  102.    Elementtime.value="";
  103.    Elementcalories.value="";
  104. });
  105.  
  106. BtnEdit.addEventListener('click',async()=>{
  107.     const food= Elementfood.value;
  108.     const time= Elementtime.value;
  109.     const calories=Elementcalories.value;
  110.  
  111.     //make put request
  112.     const response= await fetch(`${baseURL}/${idmeal}`,{
  113.       method:'PUT',
  114.       headers:{
  115.         'content-type':'application/json',
  116.       },
  117.  
  118.       body:JSON.stringify({
  119.         _id: idmeal,
  120.        food,
  121.        calories,
  122.        time
  123.  
  124.     })
  125.     });
  126.  
  127.     LoadMeals();
  128.     BtnEdit.setAttribute('disabled','disabled');
  129.  
  130.     BtnAddMeal.removeAttribute('disabled');
  131.     idmeal=null;
  132.  
  133. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement