Advertisement
drak138

blog

Jun 30th, 2024 (edited)
447
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. async function attachEvents() {
  2.  
  3.     const endPoints = {
  4.         posts: 'http://localhost:3030/jsonstore/blog/posts',
  5.         comments: 'http://localhost:3030/jsonstore/blog/comments'
  6.     }
  7.     const elUl = document.getElementById('post-comments');
  8.     const elP = document.getElementById('post-body');
  9.     const elH1 = document.getElementById('post-title');
  10.     const selectMenu = document.getElementById('posts');
  11.     const loadBtn = document.getElementById('btnLoadPosts');
  12.     loadBtn.addEventListener('click', load);
  13.     const viewBtn = document.getElementById('btnViewPost');
  14.     viewBtn.addEventListener('click', view);
  15.     let data;
  16.  
  17.     async function load(event) {
  18.         let loadResponse = await fetch(endPoints.posts);
  19.         let dataPosts = await loadResponse.json();
  20.         data = dataPosts;
  21.  
  22.         for (let el of Object.values(dataPosts)) {
  23.             let title = '';
  24.             for (let i = 0; i < el.title.length; i++) {
  25.                 title += el.title[i];
  26.             }
  27.             let elOption = document.createElement('option');
  28.             elOption.value = `${el.id}`;
  29.             elOption.textContent = title;
  30.             selectMenu.appendChild(elOption);
  31.         }
  32.     }
  33.  
  34.     async function view(event) {
  35.         let viewData = await getPatch(endPoints.comments)
  36.  
  37.             elUl.innerHTML = '';
  38.         let selectedPost = selectMenu.value;
  39.        let text=selectMenu.options[selectMenu.selectedIndex].text
  40.  
  41.  
  42.         let post=Object.values(data).find(el=>el.title===text)
  43.         let comments=Object.values(viewData).filter(c=>c.postId===selectedPost)
  44.        
  45.         elH1.textContent =text;
  46.         elP.textContent = post.body;
  47.         for (const el of comments) {
  48.                 let elLi = document.createElement('li');
  49.                 elLi.setAttribute('id', `${el.id}`);
  50.                 elLi.textContent = el.text;
  51.                 elUl.appendChild(elLi);
  52.         }
  53.     }
  54.  
  55. }
  56.  
  57. async function getPatch(url){
  58.     const response= await fetch(url)
  59.     return response.json()
  60. }
  61. attachEvents();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement