Advertisement
nikolayneykov

Untitled

Jul 20th, 2019
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let btns = Array.from(document.querySelectorAll('button'));
  2. btns[0].addEventListener('click', createStudents);
  3. btns[1].addEventListener('click', loadAllStudents);
  4. let counter = 0;
  5.  
  6. async function createStudents() {
  7.   let allInputs = Array.from(document.querySelectorAll('input'));
  8.   let [fName, lName, facNum, grade] = allInputs;
  9.   let username = `zhani`;
  10.   let password = `zhani`;
  11.   let url = `https://baas.kinvey.com/appdata/kid_BJD0TDR-H/`;
  12.   if (fName.value && lName.value && facNum.value && grade.value) {
  13.     // Niki id
  14.     const res = await fetch(url + 'students', {
  15.       method: 'GET',
  16.       headers: { Authorization: 'Basic ' + btoa(`${username}:${password}`) }
  17.     });
  18.  
  19.     const students = await res.json();
  20.     const id =
  21.       +sessionStorage.getItem('lastId') + 1 ||
  22.       +students.sort((a, b) => a.idStudent - b.idStudent).pop().idStudent + 1 ||
  23.       1;
  24.  
  25.     sessionStorage.setItem('lastId', id);
  26.     // Niki id
  27.  
  28.     let finalGrade = Number(grade.value);
  29.     finalGrade = finalGrade.toFixed(2);
  30.     let obj = {
  31.       idStudent: id,
  32.       firstName: fName.value,
  33.       lastName: lName.value,
  34.       facultyNumber: facNum.value,
  35.       grade: grade.value
  36.     };
  37.     fetch(url + 'students', {
  38.       method: 'POST',
  39.       headers: new Headers({
  40.         Authorization: 'Basic ' + btoa(`${username}:${password}`),
  41.         'Content-Type': 'application/json'
  42.       }),
  43.       body: JSON.stringify(obj)
  44.     })
  45.       .then((res) => res.json())
  46.       .then((res) => console.log(`Added `, res));
  47.     setTimeout(() => {
  48.       document.querySelector('tbody').innerHTML = '';
  49.       loadAllStudents();
  50.     }, 1000);
  51.   }
  52.   fName.value = '';
  53.   lName.value = '';
  54.   facNum.value = '';
  55.   grade.value = '';
  56. }
  57. function loadAllStudents() {
  58.   document.querySelector('tbody').innerHTML = '';
  59.   let url = `https://baas.kinvey.com/appdata/kid_BJD0TDR-H/`;
  60.   let username = `zhani`;
  61.   let password = `zhani`;
  62.   fetch(url + 'students', {
  63.     method: 'GET',
  64.     headers: { Authorization: 'Basic ' + btoa(`${username}:${password}`) }
  65.   })
  66.     .then((res) => res.json())
  67.     .then((data) => {
  68.       let info = data.sort((a, b) => a.idStudent - b.idStudent);
  69.  
  70.       info.forEach((x) => {
  71.         let tr = document.createElement('tr');
  72.         let tdID = document.createElement('td');
  73.         tdID.textContent = x.idStudent;
  74.         let tdFirstName = document.createElement('td');
  75.         tdFirstName.textContent = x.firstName;
  76.         let tdLastName = document.createElement('td');
  77.         tdLastName.textContent = x.lastName;
  78.         let tdFacNum = document.createElement('td');
  79.         tdFacNum.textContent = x.facultyNumber;
  80.         let tdGrade = document.createElement('td');
  81.         tdGrade.textContent = `${Number(x.grade).toFixed(2)}`;
  82.         tr.appendChild(tdID);
  83.         tr.appendChild(tdFirstName);
  84.         tr.appendChild(tdLastName);
  85.         tr.appendChild(tdFacNum);
  86.         tr.appendChild(tdGrade);
  87.         document.querySelector('tbody').appendChild(tr);
  88.       });
  89.     });
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement