-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
46 lines (42 loc) · 1.24 KB
/
app.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
36
37
38
39
40
41
42
43
44
45
46
'use strict';
const express = require('express');
const request = require('request');
const rp = require('request-promise');
const fs = require('fs');
const multer = require('multer');
const app = express();
const upload = multer({ dest: 'uploads/' });
const gitUrl = 'https://api.github.com/users/';
const PORT = '3000';
//api route to get the repos for user
app.post('/getRepos', upload.any(), async (request, response) => {
var fileData = fs.readFileSync(request.files[0].path, 'utf8');
var users = fileData.toString().split(",");
var obj = {};
var result;
try {
for (let i = 0; i < users.length; i++) {
result = await getUserRepos(users[i]);
obj[users[i]] = result.map(data => data.url);
}
response.status(200).send(obj);
}
catch(e) {
response.status(500).send(e);
}
})
// calls github api for mentioned user
async function getUserRepos(user) {
var options = {
method: 'GET',
json: true,
uri: gitUrl + user + "/repos",
headers: {
'user-agent': 'node.js'
}
};
return rp(options);
}
app.listen(PORT, () => {
console.log(`==app is listening at ${PORT}===`)
})