-
Notifications
You must be signed in to change notification settings - Fork 0
/
github.js
35 lines (25 loc) · 1.06 KB
/
github.js
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
// Client ID
// 42 a8c442441b8d933a62
// Client Secret
// a7d60ffdcacfe18fa8da37c407a97133a90199a3
class Github {
constructor() {
this.client_id = '42a8c442441b8d933a62';
this.client_secret = 'a7d60ffdcacfe18fa8da37c407a97133a90199a3';
this.repos_count = 5;
this.repos_sort = 'created: asc';
}
async getUser(user) {
// Profile (api.github.com/users/wlixw, i.e.) and
// Repo (api.github.users/wlixw/repos)
const profileResponse = await fetch(`https://api.github.com/users/${user}?client_id=${this.client_id}&client_secret=${this.client_secret}`);
const repoResponse = await fetch(`https://api.github.com/users/${user}/repos?per_page=${this.repos_count}&sort=${this.repos_sort}&client_id=${this.client_id}&client_secret=${this.client_secret}`);
const profile = await profileResponse.json();
const repos = await repoResponse.json();
// We are returning an object (here is why using asynchronous operations)
return {
profile,
repos
}
}
}