eternalmeg

06.Blog

Jun 30th, 2024
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. function attachEvents() {
  2. let postObject = {};
  3.  
  4. const loadButton = document.getElementById("btnLoadPosts");
  5. const postMenu = document.getElementById("posts");
  6. const viewButton = document.getElementById("btnViewPost");
  7. const postTitle = document.getElementById("post-title");
  8. const postBody = document.getElementById("post-body");
  9. const ulComments = document.getElementById("post-comments");
  10. loadButton.addEventListener("click", loadPosts);
  11. viewButton.addEventListener("click", viewPosts);
  12.  
  13. async function loadPosts() {
  14. const response = await fetch("http://localhost:3030/jsonstore/blog/posts");
  15. const data = await response.json();
  16. Object.keys(data).forEach((key) => {
  17. const optionElement = document.createElement("option");
  18. optionElement.value = key;
  19. debugger;
  20. const title = data[key].title;
  21. optionElement.text = data[key].title;
  22. postObject[title] = { postId: data[key].id, content: data[key].body };
  23. postMenu.appendChild(optionElement);
  24. });
  25. }
  26.  
  27. async function viewPosts() {
  28. const response = await fetch(
  29. "http://localhost:3030/jsonstore/blog/comments"
  30. );
  31. const data = await response.json();
  32. const selectedOption = postMenu.options[postMenu.selectedIndex];
  33. postTitle.textContent = selectedOption.text;
  34. postBody.textContent = postObject[selectedOption.text].content;
  35.  
  36. Object.keys(data)
  37. .filter(
  38. (key) => data[key].postId === postObject[selectedOption.text].postId
  39. )
  40. .forEach((key) => {
  41. const liElement = document.createElement("li");
  42. liElement.textContent = data[key].text;
  43. ulComments.appendChild(liElement);
  44. });
  45. }
  46. }
  47.  
  48. attachEvents();
Advertisement
Add Comment
Please, Sign In to add comment