-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
90 lines (82 loc) · 2.61 KB
/
script.js
File metadata and controls
90 lines (82 loc) · 2.61 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// const and variables
const API_URL = 'https://api.github.com/users/'
const form = document.getElementById('form');
const search = document.getElementById('search');
const contentInformation = document.getElementById('contentInformation');
// getuser - function
// getuser('test')
async function getuser(username) {
try {
const { data } = await axios(API_URL + username);
userCard(data)
getRespositry(username)
console.log(data);
} catch (error) {
if (error.response.status == 404) {
// createErrorMSG(`"@${username}" does not exist`);
createErrorMSG("username does not exist");
console.log(error);
}
}
}
// getRespositry - function
async function getRespositry(username) {
try {
const { data } = await axios(API_URL + username + '/repos?sort=created');
addRepoInsideCard(data)
} catch (error) {
createErrorMSG("problm in fetching repo")
}
}
// HTML userCard
function userCard(user) {
const cardHTMLCode = `<div class="card">
<div>
<img class="avatar" src="${user.avatar_url}" alt="${user.name}"
,style="1px solid red">
</div>
<div class="userInformation">
<h2>${user.name} <span class="followProfile"><a href="${user.html_url}">(Follow on GitHub</a></span></h2>
<p>${user.bio}</p>
<ul class="profileInteraction">
<li>${user.followers} <strong>Followers</strong></li>
<li>${user.following} <strong>Following </strong></li>
<li>${user.public_repos} <strong>Repositry </strong></li>
</ul>
<hr>
<div id="profleRepos"> </div>
</div>
</div> `
contentInformation.innerHTML = cardHTMLCode;
}
// if any error occured - createErrorMSG()
function createErrorMSG(msg) {
const cardHTMLCode = `
<div class="card problemOcc" >
<h1>${msg}</h1>
</div> `
contentInformation.innerHTML = cardHTMLCode;
}
// Repository details - addRepoInsideCard()
function addRepoInsideCard(repos) {
const reposElement = document.getElementById('profleRepos');
repos
.slice(0, 10)
.forEach(repo => {
const repoEl = document.createElement('a');
repoEl.classList.add('repo');
repoEl.href = repo.html_url;
repoEl.target = '_blank';
repoEl.innerText = repo.name;
reposElement.appendChild(repoEl);
})
}
form.addEventListener('submit', (e) => {
e.preventDefault();
const user = search.value;
if (user) {
getuser(user);
search.value = " ";
}
})
// @mondalCodeHub(October 2022)