Advertisement
NikolaySpasovTriset

Untitled

Jul 25th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function attachEvents() {
  2.     const LOAD_BTN = $(".load");
  3.     const ADD_BTN = $(".add");
  4.     const USERNAME = 'niki';
  5.     const PASSWORD = '123456';
  6.     const BASE_64 = btoa(USERNAME + ':' + PASSWORD);
  7.     const URL = 'https://baas.kinvey.com/appdata/kid_Hkl_4NVE7/biggestCatches';
  8.     const POST_HEADERS = {
  9.         "Content-Type": "application/json",
  10.         Authorization: `Basic ${BASE_64}`
  11.     };
  12.  
  13.  
  14.     LOAD_BTN.on("click", load);
  15.     ADD_BTN.on("click", add);
  16.  
  17.     async function load() {
  18.         $('#catches').empty();
  19.         let result = await $.ajax({
  20.             method: "GET",
  21.             url: URL,
  22.             headers: POST_HEADERS
  23.         });
  24.         if (!result) {
  25.             handleError(new Error("No result from URL!"))
  26.         }
  27.         appendDiv(result);
  28.     }
  29.  
  30.     function appendDiv(result) {
  31.         for (let obj of result) {
  32.             let divToAppend =
  33.                 $(`<div class="catch" data-id="${obj._id}">
  34.                     <label>Angler</label>
  35.                     <input type="text" class="angler" value="${obj.angler}"/>
  36.                     <label>Weight</label>
  37.                     <input type="number" class="weight" value="${obj.weight}"/>
  38.                     <label>Species</label>
  39.                     <input type="text" class="species" value="${obj.species}"/>
  40.                     <label>Location</label>
  41.                     <input type="text" class="location" value="${obj.location}"/>
  42.                     <label>Bait</label>
  43.                     <input type="text" class="bait" value="${obj.bait}"/>
  44.                     <label>Capture Time</label>
  45.                     <input type="number" class="captureTime" value="${obj.captureTime}"/>
  46.                 </div>`)
  47.                     .append($('<button>Update</button>').on("click", update))
  48.                     .append($('<button>Delete</button>').on("click", del));
  49.             $('#catches').append(divToAppend);
  50.         }
  51.     }
  52.  
  53.     function update() {
  54.         const ID = $(this).parent().attr('data-id');
  55.         let [angler, weight, species, location, bait, captureTime] =$(`[data-id=${ID}] > input`)
  56.            .toArray().map(i => $(i).val());
  57.  
  58.         let currentObj = {
  59.             angler,
  60.             weight: Number(weight),
  61.             species,
  62.             location,
  63.             bait,
  64.             captureTime: Number(captureTime)
  65.         };
  66.  
  67.         $.ajax({
  68.             method: "PUT",
  69.             url: URL + "/" + ID,
  70.             headers: POST_HEADERS,
  71.             data: JSON.stringify(currentObj)
  72.         }).then(function () {
  73.             LOAD_BTN.click();
  74.         }).catch(errHandler)
  75.     }
  76.  
  77.     function del() {
  78.             const ID = $(this).parent().attr('data-id');
  79.             $.ajax({
  80.                 method: "DELETE",
  81.                 url: URL + "/" + ID,
  82.                 headers: POST_HEADERS,
  83.             }).then(function () {
  84.                 $(`[data-id=${ID}]`).remove();
  85.                 LOAD_BTN.click();
  86.             }).catch(errHandler)
  87.     }
  88.  
  89.     function add() {
  90.         let [angler, weight, species, location, bait, captureTime] =
  91.             $('#addForm > input').toArray().map(i => $(i).val());
  92.  
  93.         let currentObj = {
  94.             angler,
  95.             weight: Number(weight),
  96.             species,
  97.             location,
  98.             bait,
  99.             captureTime: Number(captureTime)
  100.         };
  101.         $.ajax({
  102.             method: "POST",
  103.             url: URL,
  104.             headers: POST_HEADERS,
  105.             data: JSON.stringify(currentObj)
  106.         }).then(function () {
  107.             $('#addForm > input').toArray().forEach(i => $(i).val(""));
  108.             LOAD_BTN.click();
  109.         }).catch(errHandler)
  110.     }
  111.  
  112.     function errHandler(err) {
  113.         window.alert(err.responseText + " " + err.statusText)
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement