forked from CodeYourFuture/Project-Codewars-API
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcodewars-badge.js
More file actions
75 lines (64 loc) · 2.01 KB
/
codewars-badge.js
File metadata and controls
75 lines (64 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
function extractCodeWarsAPI() {
return fetch("https://www.codewars.com/api/v1/users/MarcusZagorski").then(
(res) => {
if (!res.ok) {
return "Error";
}
return res.json();
}
);
}
const cardLayout = document.querySelector(".card_layout");
function creatingElements(tag, classList, textContent) {
const creatingElement = document.createElement(tag);
if (classList) {
creatingElement.classList.add(classList);
}
if (textContent) {
creatingElement.textContent = textContent;
}
return creatingElement;
}
function renderUserData(data) {
const rankAndHonor = creatingElements("div", "rank__honor");
const rank = creatingElements("h1", "", `Rank: ${data.ranks.overall.name}`);
const honor = creatingElements("h1", "", `Honor: ${data.honor}`);
rankAndHonor.appendChild(rank);
rankAndHonor.appendChild(honor);
cardLayout.appendChild(rankAndHonor);
}
function renderMainInfo(data) {
const mainCardInfo = creatingElements("div", "main__details");
const username = creatingElements("h1", "", `Username: ${data.username}`);
const userID = creatingElements("h1", "", `User ID: ${data.id}`);
const languages = creatingElements("h1", "", "Languages: JavaScript");
const score = creatingElements(
"h1",
"",
`Score: ${data.ranks.overall.score}`
);
const totalCompleted = creatingElements(
"h1",
"",
`Total Completed: ${data.codeChallenges.totalCompleted}`
);
mainCardInfo.appendChild(username);
mainCardInfo.appendChild(userID);
mainCardInfo.appendChild(languages);
mainCardInfo.appendChild(score);
mainCardInfo.appendChild(totalCompleted);
cardLayout.appendChild(mainCardInfo);
}
function renderCardLabel() {
const cardTitle = creatingElements("div", "comp__title", "CodeWars Tracker");
cardLayout.insertAdjacentElement("beforeend", cardTitle);
}
function render() {
extractCodeWarsAPI()
.then((data) => {
renderUserData(data);
renderMainInfo(data);
})
.then(() => renderCardLabel());
}
window.onload = render;