Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. async function submitStudentHandler(event) {
  2.     event.preventDefault();
  3.  
  4.     const studentData = {
  5.         ID: Number(studentInputForms.ID.value),
  6.         FirstName: studentInputForms.FirstName.value,
  7.         LastName: studentInputForms.LastName.value,
  8.         FacultyNumber: Number(studentInputForms.FacultyNumber.value),
  9.         Grade: Number(studentInputForms.Grade.value),
  10.     };
  11.  
  12.     if (!validateStudent(studentData)) {
  13.         return;
  14.     }
  15.  
  16.     clearInputFields(studentInputForms);
  17.  
  18.     await requester.post(ROOT_URL, USER_CREDENTIALS, studentData);
  19.     await loadStudentsHandler();
  20. }
  21.  
  22. async function loadStudentsHandler() {
  23.     const students = await requester.get(ROOT_URL, USER_CREDENTIALS);
  24.     studentsList.innerHTML = "";
  25.  
  26.     let fragment = document.createDocumentFragment();
  27.  
  28.     students
  29.         .sort((s1, s2) => s1.ID - s2.ID)
  30.         .forEach(student => {
  31.             let studentElement = drawStudent(student);
  32.             fragment.appendChild(studentElement);
  33.         });
  34.  
  35.     studentsList.appendChild(fragment);
  36. }
  37.  
  38.  
  39.  
  40. //requester
  41. //-------------------------------------------------------------------------
  42.  
  43. function fetchData(URL, headers) {
  44.     return fetch(URL, headers)
  45.         .then(handleResponse)
  46.         .then(parseResponseData);
  47. }
  48.  
  49. function handleResponse(response) {
  50.     if (!response.ok) {
  51.         throw new Error(response.statusText);
  52.     }
  53.  
  54.     return response;
  55. }
  56.  
  57. function parseResponseData(response) {
  58.     return response.json();
  59. }
  60.  
  61. function buildHeaders(httpMethod, user, data) {
  62.     let headers = {
  63.         method: httpMethod,
  64.         headers: {
  65.             "Authorization": `Basic ${btoa(`${user.name}:${user.password}`)}`,
  66.             "Content-Type": "application/json",
  67.         }
  68.     };
  69.  
  70.     if (httpMethod === "POST" || httpMethod === "PUT") {
  71.         headers.body = JSON.stringify(data);
  72.     }
  73.  
  74.     return headers;
  75. }
  76.  
  77. function get(URL, user) {
  78.     let headers = buildHeaders("GET", user);
  79.  
  80.     return fetchData(URL, headers);
  81. }
  82.  
  83. function post(URL, user, data) {
  84.     let headers = buildHeaders("POST", user, data);
  85.  
  86.     return fetchData(URL, headers, data);
  87. }
  88.  
  89. function put(URL, user, data) {
  90.     let headers = buildHeaders("PUT", user, data);
  91.  
  92.     return fetchData(URL, headers);
  93. }
  94.  
  95. function del(URL, user) {
  96.     let headers = buildHeaders("DELETE", user);
  97.  
  98.     return fetchData(URL, headers);
  99. }
  100.  
  101. export const requester = {
  102.     get,
  103.     post,
  104.     put,
  105.     del
  106. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement