diff --git a/codewars-badge.js b/codewars-badge.js index 7c26060..8bcb814 100644 --- a/codewars-badge.js +++ b/codewars-badge.js @@ -1,51 +1,24 @@ -// This native web component fetches data from the Codewars API and renders it as a badge -// Here is some information about web component https://developer.mozilla.org/en-US/docs/Web/Web_Components -// Here is the link to the Codewars API Docs: https://dev.codewars.com/#get-user - -class CodeWarsBadge extends HTMLElement { - constructor() { - super(); - this.attachShadow({ mode: "open" }); - this.userName = "CodeYourFuture"; - this.userData = []; - } - +class CodewarsBadge extends HTMLElement { connectedCallback() { - this.fetchActivity() - .then(() => { - this.render(); - }) - .catch((error) => { - console.error(error); - }); + const USERNAME = encodeURIComponent("Houssam LH"); + fetch(`https://www.codewars.com/api/v1/users/${USERNAME}`) + .then(res => res.json()) + .then(data => this.render(data)) + .catch(err => console.error(err)); } - // fetch the data from the Codewars API - async fetchActivity() { - const response = await fetch( - `https://www.codewars.com/api/v1/users/${this.userName}` - ); - const data = await response.json(); - this.userData = data; // set the userData property with the fetched data - } - - render() { - this.shadowRoot.innerHTML = ` - - - ${this.userData.ranks.overall.name} - `; + render(data) { + this.innerHTML = ` +
Overall Rank: ${data.ranks.overall.name}
+Total Completed Challenges: ${data.codeChallenges.totalCompleted}
+Honor: ${data.honor}
+JavaScript Rank: ${data.ranks.languages.javascript.name}
+