let givenProfile = "";
let profileName = "";
let profileId = "";
let profileLink = "";
let profileRepos = "";
let profileFollowers = "";
let profileFollowing = "";
function renderPage() {
document.getElementById("app").innerHTML = `
<div>
<h1>Github profile viewer</h1>
<p>Please enter profile name: </p>
<input value="${givenProfile}" placeholder="Enter GitHub username" />
<div class="content">
<h1 id="name">Name: ${profileName ? profileName : "-"}</h1>
<p id="id">Id: ${profileId ? profileId : "-"}</p>
<p id="repos">Public repos: ${profileRepos ? profileRepos : "-"}</p>
<p id="followers">Followers: ${
profileFollowers ? profileFollowers : "-"
}</p>
<p id="following">Following: ${
profileFollowing ? profileFollowing : "-"
}</p>
<p id="profileurl">Link: ${
profileLink && profileName
? `<a href="${profileLink}" target="_blank">${profileLink}</a>`
: "-"
}</p>
</div>
</div>
`;
const input = document.querySelector("input");
input.addEventListener("change", updateValue);
}
function updateValue(e) {
givenProfile = e.target.value;
fetchProfile();
}
async function fetchProfile() {
if (!givenProfile) {
profileName = "";
profileId = "";
profileLink = "";
profileRepos = "";
profileFollowers = "";
profileFollowing = "";
renderPage();
return;
}
try {
const response = await fetch(
`https://api.github.com/users/${givenProfile}`
);
const rateLimitRemaining = response.heards.get("X-RateLimit-Remaining");
if (!response.ok) {
profileName = "User not found";
profileId = "-";
profileLink = "";
profileRepos = "-";
profileFollowers = "-";
profileFollowing = "-";
} else {
const data = await response.json();
profileName = data.login || "-";
profileId = data.id || "-";
profileLink = data.html_url || "";
profileRepos = data.public_repos || "-";
profileFollowers = data.followers || "-";
profileFollowing = data.following || "-";
}
if (rateLimitRemaining === "0") {
profileName = "API rate limit reached. Try again later";
profileId = "";
profileLink = "";
profileRepos = "";
}
renderPage();
} catch (e) {
profileName = "Error";
profileId = "-";
profileLink = "";
profileRepos = "-";
profileFollowers = "-";
profileFollowing = "-";
renderPage();
}
}
renderPage();

kokkuvõte
On loodud leht mis teeb päringu Githubi ja näitab valiku infot (ID, ava repos, viit repos)