Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.73 KB | None | 0 0
  1. var base_url = "https://api.football-data.org/v2/competitions/2021/matches";
  2.  
  3. function fetchWithToken(url){
  4. return fetch(url, {
  5. headers: {
  6. 'X-Auth-Token': '9e44af272fc541e9ac7da576257957f0'
  7. }
  8. })
  9. }
  10.  
  11. // Blok kode yang akan di panggil jika fetch berhasil
  12. function status(response) {
  13. if (response.status !== 200) {
  14. console.log("Error : " + response.status);
  15. // Method reject() akan membuat blok catch terpanggil
  16. return Promise.reject(new Error(response.statusText));
  17. } else {
  18. // Mengubah suatu objek menjadi Promise agar bisa "di-then-kan"
  19. return Promise.resolve(response);
  20. }
  21. }
  22.  
  23. // Blok kode untuk memparsing json menjadi array JavaScript
  24. function json(response) {
  25. return response.json();
  26. }
  27.  
  28. // Blok kode untuk meng-handle kesalahan di blok catch
  29. function error(error) {
  30. // Parameter error berasal dari Promise.reject()
  31. console.log("Error : " + error);
  32. }
  33.  
  34. // Blok kode untuk melakukan request data json
  35. function getArticles() {
  36. if ("caches" in window) {
  37. caches.match(base_url).then(function(response) {
  38. if (response) {
  39. response.json().then(function(data) {
  40. var articlesHTML = "";
  41. data.matches.forEach(function(article) {
  42. articlesHTML += `
  43. <div class="card">
  44. <table class="highlight centered">
  45. <thead>
  46. <tr>
  47. <th>Home</th>
  48. <th>Away</th>
  49. <th>Home Score</th>
  50. <th>Away Score</th>
  51. <th>Match Day</th>
  52. </tr>
  53. </thead>
  54.  
  55. <tbody>
  56. <tr>
  57. <td>${article.homeTeam.name}</td>
  58. <td>${article.awayTeam.name}</td>
  59. <td>${article.score.fullTime.homeTeam}</td>
  60. <td>${article.score.fullTime.awayTeam}</td>
  61. <td>${article.season.currentMatchday}</td>
  62. </tr>
  63. </tbody>
  64. </table>
  65. </div>
  66. `;
  67. });
  68. // Sisipkan komponen card ke dalam elemen dengan id #content
  69. document.getElementById("articles").innerHTML = articlesHTML;
  70. });
  71. }
  72. });
  73. }
  74.  
  75. fetchWithToken(base_url)
  76. .then(status)
  77. .then(json)
  78. .then(function(data) {
  79. // Objek/array JavaScript dari response.json() masuk lewat data.
  80.  
  81. // Menyusun komponen card artikel secara dinamis
  82. var articlesHTML = "";
  83. data.matches.forEach(function(article) {
  84. articlesHTML += `
  85. <div class="card">
  86. <table class="highlight centered">
  87. <thead>
  88. <tr>
  89. <th>Home</th>
  90. <th>Away</th>
  91. <th>Home Score</th>
  92. <th>Away Score</th>
  93. <th>Match Day</th>
  94. </tr>
  95. </thead>
  96.  
  97. <tbody>
  98. <tr>
  99. <td>${article.homeTeam.name}</td>
  100. <td>${article.awayTeam.name}</td>
  101. <td>${article.score.fullTime.homeTeam}</td>
  102. <td>${article.score.fullTime.awayTeam}</td>
  103. <td>${article.season.currentMatchday}</td>
  104. </tr>
  105. </tbody>
  106. </table>
  107. </div>
  108. `;
  109. });
  110. // Sisipkan komponen card ke dalam elemen dengan id #content
  111. document.getElementById("articles").innerHTML = articlesHTML;
  112. })
  113. .catch(error);
  114. }
  115.  
  116. function getArticleById() {
  117. // Ambil nilai query parameter (?id=)
  118. var urlParams = new URLSearchParams(window.location.search);
  119. var idParam = urlParams.get("id");
  120.  
  121. if ("caches" in window) {
  122. caches.match(base_url + idParam).then(function(response) {
  123. if (response) {
  124. response.json().then(function(data) {
  125. var articleHTML = `
  126. <div class="card">
  127. <table class="highlight centered">
  128. <thead>
  129. <tr>
  130. <th>Home</th>
  131. <th>Away</th>
  132. <th>Home Score</th>
  133. <th>Away Score</th>
  134. <th>Match Day</th>
  135. </tr>
  136. </thead>
  137.  
  138. <tbody>
  139. <tr>
  140. <td>${article.homeTeam.name}</td>
  141. <td>${article.awayTeam.name}</td>
  142. <td>${article.score.fullTime.homeTeam}</td>
  143. <td>${article.score.fullTime.awayTeam}</td>
  144. <td>${article.season.currentMatchday}</td>
  145. </tr>
  146. </tbody>
  147. </table>
  148. </div>
  149. `;
  150. // Sisipkan komponen card ke dalam elemen dengan id #content
  151. document.getElementById("body-content").innerHTML = standingsHTML;
  152. });
  153. }
  154. });
  155. }
  156.  
  157. fetchWithToken(base_url + idParam)
  158. .then(status)
  159. .then(json)
  160. .then(function(data) {
  161. // Objek JavaScript dari response.json() masuk lewat variabel data.
  162. console.log(data);
  163. // Menyusun komponen card artikel secara dinamis
  164. var articleHTML = `
  165. <div class="card">
  166. <table class="highlight centered">
  167. <thead>
  168. <tr>
  169. <th>Home</th>
  170. <th>Away</th>
  171. <th>Home Score</th>
  172. <th>Away Score</th>
  173. <th>Match Day</th>
  174. </tr>
  175. </thead>
  176.  
  177. <tbody>
  178. <tr>
  179. <td>${article.homeTeam.name}</td>
  180. <td>${article.awayTeam.name}</td>
  181. <td>${article.score.fullTime.homeTeam}</td>
  182. <td>${article.score.fullTime.awayTeam}</td>
  183. <td>${article.season.currentMatchday}</td>
  184. </tr>
  185. </tbody>
  186. </table>
  187. </div>
  188. `;
  189. // Sisipkan komponen card ke dalam elemen dengan id #content
  190. document.getElementById("body-content").innerHTML = standingsHTML;
  191. });
  192. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement