Skip to content

Commit f6b1b79

Browse files
committed
user profile fetch and organization fetch using github api
1 parent fe0477d commit f6b1b79

File tree

4 files changed

+140
-1
lines changed

4 files changed

+140
-1
lines changed

app.js

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ var express = require('express');
33
var path = require('path');
44
var cookieParser = require('cookie-parser');
55
var logger = require('morgan');
6+
var cors = require('cors')
67

78
var orgsRouter = require('./routes/orgs/');
89
var usersRouter = require('./routes/users/');
@@ -14,6 +15,7 @@ var app = express();
1415
app.set('views', path.join(__dirname, 'views'));
1516
app.set('view engine', 'hbs');
1617

18+
app.use(cors());
1719
app.use(logger('dev'));
1820
app.use(express.json());
1921
app.use(express.urlencoded({ extended: false }));

package-lock.json

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"chai": "^4.2.0",
1515
"chai-http": "^4.3.0",
1616
"cookie-parser": "~1.4.4",
17+
"cors": "^2.8.5",
1718
"debug": "~2.6.9",
1819
"express": "~4.16.1",
1920
"express-session": "^1.17.1",

routes/users/githubAPI.js

+128-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,134 @@ const {github} = require('./../../config/config')
66
var clientId=github.clientId
77
var clientSecret=github.clientSecret
88

9+
router.get('/getUserProfile',(req,res)=>{
10+
username = req.query.username
11+
axios
12+
.get(`https://api.github.com/users/${username}`)
13+
.then(resp => {
14+
res.send(resp.data)
15+
})
16+
.catch(err=>res.json({"error":err}))
17+
})
18+
19+
router.get('/getUserOrgs',(req,res)=>{
20+
oauth_token=req.query.token
21+
username=req.query.username
22+
githubLogin=req.query.githubLogin
23+
console.log(githubLogin)
24+
console.log("username",req.query.username)
25+
if(githubLogin=="false"){
26+
console.log("! githubLogin is ",githubLogin)
27+
axios
28+
.get(`https://api.github.com/users/${username}/orgs`)
29+
.then(resp => {
30+
res.send(resp.data)
31+
})
32+
.catch(err=>res.json({"error":err}))
33+
}
34+
else{
35+
console.log("githubLogin",githubLogin)
36+
let config = {
37+
headers: {
38+
"Authorization":`token ${oauth_token}`,
39+
}
40+
}
41+
console.log(config)
42+
axios
43+
.get(`https://api.github.com/user/orgs`,config=config)
44+
.then(resp => {
45+
console.log(resp.data.length)
46+
return resp.data
47+
})
48+
.then(orgs=>{
49+
var list_orgs=orgs;
50+
let config = {
51+
headers: {
52+
"Authorization":`token ${oauth_token}`
53+
}
54+
}
55+
axios
56+
.get(`https://api.github.com/users/${username}/orgs`,config=config)
57+
.then(resp1 => {
58+
console.log(resp1.data.length)
59+
var flag,elem;
60+
resp1.data.forEach(element => {
61+
flag=0;
62+
elem=element
63+
list_orgs.forEach(element1=>{
64+
if(element1.login==element.login){
65+
flag=1;
66+
}
67+
})
68+
if(flag==0){
69+
list_orgs.push(elem);
70+
}
71+
});
72+
res.send(list_orgs)
73+
})
74+
})
75+
.catch(err=>{console.log(err);res.json({"error":err})})
76+
}
77+
})
78+
79+
router.get('/getUserRepos',(req,res)=>{
80+
oauth_token = req.query.token
81+
let config = {
82+
headers: {
83+
"Authorization":`token ${oauth_token}`,
84+
}
85+
}
86+
console.log(config)
87+
username = req.query.username
88+
if(username!==undefined){
89+
axios
90+
.get(`https://api.github.com/users/${username}/repos`,config=config)
91+
.then(resp => {
92+
res.send(resp.data)
93+
})
94+
.catch(err=>res.json({"error":err}))
95+
}
96+
else{
97+
axios
98+
.get(`https://api.github.com/user/repos`,config=config)
99+
.then(resp => {
100+
res.send(resp.data)
101+
})
102+
.catch(err=>res.json({"error":err}))
103+
}
104+
})
105+
106+
router.get('/getUserData',(req,res)=>{
107+
var oauth_token=req.query.token;
108+
var username=req.query.username;
109+
var githubLogin = req.query.githubLogin;
110+
if(githubLogin=="true"){
111+
console.log({"Authorization": `token ${oauth_token}`})
112+
let config = {
113+
headers: {
114+
"Authorization":`token ${oauth_token}`
115+
}
116+
}
117+
axios
118+
.get(`https://api.github.com/user`,config=config)
119+
.then(resp => {
120+
res.cookie('username',resp.data["login"],{expires: new Date(Date.now() + + 315360000000)}) //saves username for upcoming queries of logedin user
121+
res.json(resp.data)
122+
})
123+
.catch(err=>res.sendStatus(400).json({"error":err}))
124+
}
125+
else{
126+
console.log("not github login")
127+
axios
128+
.get(`https://api.github.com/users/${username}`)
129+
.then(resp => {
130+
res.cookie('username',resp.data["login"],{expires: new Date(Date.now() + + 315360000000)}) //saves username for upcoming queries of logedin user
131+
res.json(resp.data)
132+
})
133+
.catch(err=>res.json({"error":err}))
134+
}
135+
})
136+
9137
router.get('/auth',(req,res)=>{
10138
const body = {
11139
client_id: clientId,
@@ -57,7 +185,6 @@ router.get('/auth',(req,res)=>{
57185
}
58186
})
59187
.catch(err=>res.sendStatus(400).json({"error":err}))
60-
61188
}).
62189
catch(err => {
63190
res.status(500).json({"error":err});

0 commit comments

Comments
 (0)