kstoyanov

4.Messenger

Nov 2nd, 2020
605
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function attachEvents() {
  2.     const sendBtn = document.getElementById('submit');
  3.     const refreshBtn = document.getElementById('refresh');
  4.     const inputName = document.getElementById('author');
  5.     const inputMessage = document.getElementById('content');
  6.     const textarea = document.getElementById('messages');
  7.  
  8.     sendBtn.addEventListener('click', sendMessage);
  9.     refreshBtn.addEventListener('click', showMessages);
  10.  
  11.     function sendMessage() {
  12.         const headers = {
  13.             method: 'POST',
  14.             headers: { 'Content-type': 'application/json' },
  15.             body: JSON.stringify({
  16.                 author: inputName.value,
  17.                 content: inputMessage.value
  18.             })
  19.         }
  20.         fetch('https://rest-messanger.firebaseio.com/messanger.json', headers)
  21.             .then()
  22.             .catch(handleErrors);
  23.     }
  24.     function showMessages() {
  25.         fetch('https://rest-messanger.firebaseio.com/messanger.json')
  26.             .then(checkForErrors)
  27.             .then(res => res.json())
  28.             .then(checkForErrors)
  29.             .then(data => {
  30.                 textarea.value = '';
  31.                 Object.values(data)
  32.                     .forEach(({ author, content }) => {
  33.                         textarea.value += `${author}: ${content}\n`;
  34.                     });
  35.             })
  36.             .catch(handleErrors);
  37.     }
  38.     function checkForErrors(res) {
  39.         if (res === null || res === undefined) {
  40.             throw new Error('Invalid JSON data!');
  41.         }
  42.         else if (res.ok === false) {
  43.             throw new Error(`${res.status} - ${res.statusText}`);
  44.         }
  45.         return res;
  46.     }
  47.     function handleErrors(err) {
  48.         console.error(err);
  49.     }
  50. }
  51.  
  52. attachEvents();
  53.  
Add Comment
Please, Sign In to add comment