aboutsummaryrefslogtreecommitdiff
path: root/routes/api.js
blob: 4b72d0537e1bedb28be68e619d332c2ae47455d1 (plain)
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
const express = require("express");
const router = express.Router();
const { Github } = require("../api/github");
const github = new Github("luciferreeves");

router.get("/repos", (req, res) => {
  const page = req.query.page || 1;
  github.getRepos(page).then((repos) => {
    github.getRepos(parseInt(page) + 1).then((repos2) => {
      const count = repos.length;
      const count2 = repos2.length;
      const repositories = [];
      repos.forEach((repo) => {
        repositories.push({
          name: repo.name,
          description: repo.description,
          url: repo.html_url,
          language: repo.language,
          stars: repo.stargazers_count,
          forks: repo.forks_count,
          issues: repo.open_issues_count,
          license: repo.license ? repo.license.name : null,
          updated: repo.updated_at,
          created: repo.created_at,
        });
      });
      res.json({
        count: count,
        countNext: count2,
        repositories: repositories,
      });
    });
  });
});

router.get("/user", (req, res) => {
  github.getUserDetails().then((user) => {
    github.getOneYearUserContributions().then((contributions) => {
      res.json({
        user: {
          login: user.login,
          name: user.name,
          avatar: user.avatar_url,
          location: user.location,
          bio: user.bio,
          url: user.html_url,
          followers: user.followers,
          following: user.following,
          company: user.company,
          twitter: user.twitter_username,
          blog: user.blog,
        },
        contributions: contributions,
      });
    });
  });
});

module.exports = router;