File tree Expand file tree Collapse file tree 9 files changed +110
-18
lines changed Expand file tree Collapse file tree 9 files changed +110
-18
lines changed Original file line number Diff line number Diff line change 25
25
"license" : " MIT" ,
26
26
"private" : " true" ,
27
27
"devDependencies" : {
28
+ "@types/axios" : " ^0.14.0" ,
28
29
"@types/body-parser" : " ^1.19.0" ,
29
30
"@types/express" : " ^4.17.8" ,
30
31
"@types/morgan" : " ^1.9.1" ,
34
35
"typescript" : " ^4.0.3"
35
36
},
36
37
"dependencies" : {
38
+ "axios" : " ^0.21.0" ,
37
39
"body-parser" : " ^1.19.0" ,
38
40
"express" : " ^4.17.1" ,
39
41
"morgan" : " ^1.10.0"
Original file line number Diff line number Diff line change
1
+ import { Request , Response } from "express" ;
2
+
3
+ import * as Github from "../../services/github" ;
4
+
5
+ export const listRepositories = async ( req : Request , res : Response ) => {
6
+ try {
7
+ const repositories = await Github . listOrganizationRepositories ( {
8
+ org : "dzcode-io" ,
9
+ } ) ;
10
+
11
+ return res . status ( 200 ) . json ( repositories ) ;
12
+ } catch ( e ) {
13
+ console . error ( e ) ;
14
+ return res . sendStatus ( 400 ) ;
15
+ }
16
+ } ;
17
+
18
+ export const listPullRequestsByRepository = async (
19
+ req : Request ,
20
+ res : Response ,
21
+ ) => {
22
+ try {
23
+ const pullRequests = await Github . listPullRequests ( {
24
+ owner : "dzcode-io" ,
25
+ repo : "dzcode.io" ,
26
+ } ) ;
27
+
28
+ return res . status ( 200 ) . json ( pullRequests ) ;
29
+ } catch ( e ) {
30
+ console . error ( e ) ;
31
+ return res . sendStatus ( 400 ) ;
32
+ }
33
+ } ;
Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ import express , { Router } from "express" ;
2
+
3
+ import {
4
+ listRepositories ,
5
+ listPullRequestsByRepository ,
6
+ } from "../../../controllers/github" ;
7
+
8
+ const router : Router = express . Router ( ) ;
9
+
10
+ router . get ( "/repositories" , listRepositories ) ;
11
+ router . get ( "/pull-requests" , listPullRequestsByRepository ) ;
12
+
13
+ export default router ;
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1
1
import express , { Router } from "express" ;
2
2
3
- import helloWorld from "./helloWorld " ;
3
+ import github from "./github " ;
4
4
5
5
const router : Router = express . Router ( ) ;
6
6
7
- router . use ( "/helloWorld " , helloWorld ) ;
7
+ router . use ( "/github " , github ) ;
8
8
9
9
export default router ;
Original file line number Diff line number Diff line change @@ -7,6 +7,9 @@ const router: Router = Router();
7
7
// API routes
8
8
router . use ( "/" , api ) ;
9
9
10
+ // Health
11
+ router . get ( "/health" , ( req : Request , res : Response ) => res . sendStatus ( 204 ) ) ;
12
+
10
13
// Not found routes
11
14
router . use ( "*" , ( req : Request , res : Response ) => {
12
15
return res . sendStatus ( 404 ) ;
Original file line number Diff line number Diff line change
1
+ import axios from "axios" ;
2
+
3
+ export const listOrganizationRepositories = async ( {
4
+ org,
5
+ } : {
6
+ org : string ;
7
+ } ) => {
8
+ try {
9
+ const response = await axios . get (
10
+ `https://api.github.com/orgs/${ org } /repos` ,
11
+ ) ;
12
+
13
+ return response . data ;
14
+ } catch ( error ) {
15
+ console . log ( "listOrganizationRepositories ERROR =>" , error . response . data ) ;
16
+ return null ;
17
+ }
18
+ } ;
19
+
20
+ export const listPullRequests = async ( {
21
+ owner,
22
+ repo,
23
+ } : {
24
+ owner : string ;
25
+ repo : string ;
26
+ } ) => {
27
+ try {
28
+ const response = await axios . get (
29
+ `https://api.github.com/repos/${ owner } /${ repo } /pulls` ,
30
+ { params : { state : "all" , per_page : 10 } } ,
31
+ ) ;
32
+
33
+ return response . data ;
34
+ } catch ( error ) {
35
+ console . log ( "listPullRequests ERROR =>" , error . response . data ) ;
36
+ return null ;
37
+ }
38
+ } ;
Original file line number Diff line number Diff line change 14
14
dependencies :
15
15
defer-to-connect "^1.0.1"
16
16
17
+ " @types/axios@^0.14.0 " :
18
+ version "0.14.0"
19
+ resolved "https://registry.yarnpkg.com/@types/axios/-/axios-0.14.0.tgz#ec2300fbe7d7dddd7eb9d3abf87999964cafce46"
20
+ integrity sha1-7CMA++fX3d1+udOr+HmZlkyvzkY=
21
+ dependencies :
22
+ axios "*"
23
+
17
24
" @types/body-parser@*" , "@types/body-parser@^1.19.0":
18
25
version "1.19.0"
19
26
resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f"
138
145
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
139
146
integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
140
147
148
+ axios@*, axios@^0.21.0 :
149
+ version "0.21.0"
150
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.0.tgz#26df088803a2350dff2c27f96fef99fe49442aca"
151
+ integrity sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==
152
+ dependencies :
153
+ follow-redirects "^1.10.0"
154
+
141
155
balanced-match@^1.0.0 :
142
156
version "1.0.0"
143
157
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@@ -485,6 +499,11 @@ finalhandler@~1.1.2:
485
499
statuses "~1.5.0"
486
500
unpipe "~1.0.0"
487
501
502
+ follow-redirects@^1.10.0 :
503
+ version "1.13.0"
504
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db"
505
+ integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==
506
+
488
507
forwarded@~0.1.2 :
489
508
version "0.1.2"
490
509
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
You can’t perform that action at this time.
0 commit comments