dimitrix85

Untitled

Nov 14th, 2019
61
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function attachEvents() {
  2.     let actions = {
  3.         "refresh": () => refreshMsg(),
  4.         "submit": () => submitMsg()
  5.     }
  6.  
  7.     const url = `https://rest-messanger.firebaseio.com/messanger.json`;
  8.  
  9.     document.addEventListener("click", eventHangler);
  10.  
  11.     function eventHangler(e) {
  12.         if (typeof actions[e.target.id] === "function") {
  13.             actions[e.target.id](e);
  14.         }
  15.     }
  16.  
  17.     function refreshMsg() {
  18.  
  19.         let messages = document.getElementById("messages");
  20.         messages.textContent = "";
  21.  
  22.         fetch(url)
  23.             .then(errorHandler)
  24.             .then(res => res.json())
  25.             .then(data => {
  26.                 Object.entries(data).forEach(element => {
  27.                     let { author, content } = element[1];
  28.  
  29.                     messages.textContent += `${author}: ${content}\n`;
  30.                 });
  31.             })
  32.             .catch(() => {
  33.                 throw new Error("Bad request");
  34.             })
  35.     }
  36.  
  37.     function submitMsg() {
  38.         let authorInput = document.getElementById("author");
  39.         let contentInput = document.getElementById("content");
  40.  
  41.         let header = {
  42.             method: "POST",
  43.             headers: { "Content-Type": "application/json" },
  44.             body: JSON.stringify({ author: authorInput.value, content: contentInput.value })
  45.         };
  46.  
  47.  
  48.         fetch(url, header)
  49.             .then(errorHandler)
  50.             .then(() => {
  51.                 refreshMsg();
  52.                 authorInput.value = "";
  53.                 contentInput.value = "";
  54.             })
  55.     }
  56.  
  57.     function errorHandler(e) {
  58.         if (!e.status === 200) {
  59.             throw new Error("Bad status");
  60.             return;
  61.         }
  62.  
  63.         return e;
  64.     }
  65.  
  66.  
  67. }
  68.  
  69. attachEvents();
RAW Paste Data