stage2.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. function jsonPost(url, data) {
  2. return new Promise((resolve, reject) => {
  3. const x = new XMLHttpRequest();
  4. x.onerror = () => reject(new Error('jsonPost failed'))
  5. //x.setRequestHeader('Content-Type', 'application/json');
  6. x.open("POST", url, true);
  7. x.send(JSON.stringify(data))
  8. x.onreadystatechange = () => {
  9. if (x.readyState === XMLHttpRequest.DONE && x.status === 200){
  10. resolve(JSON.parse(x.responseText))
  11. } else if (x.status !== 200){
  12. reject(new Error('status is not 200'))
  13. }
  14. }
  15. });
  16. }
  17. const url = "http://students.a-level.com.ua:10012";
  18. let messagesArray = jsonPost(url, {func: 'getMessages'});
  19. const addZero = data => data < 10 ? `0${data}` : data;
  20. const buildDate = date => `${date.getDate()}/${date.getMonth()+1}/${date.getFullYear()} ${addZero(date.getHours())}:${addZero(date.getMinutes())}:${addZero(date.getSeconds())}`;
  21. const buildMessage = (nick, message, time) => {
  22. return `<p>nick - ${nick}, message - ${message}, date - ${buildDate(new Date(time))}</p>`;
  23. }
  24. messagesArray.then(messages => {
  25. for (const message of messages.data) {
  26. chatMessages.insertAdjacentHTML('afterbegin', buildMessage(message.nick, message.message, message.timestamp));
  27. }
  28. });