Skip to content

Commit c1dbdd6

Browse files
authored
feat: refactor all apis in new path (CM-1236) (#4221)
Signed-off-by: Umberto Sgueglia <usgueglia@contractor.linuxfoundation.org>
1 parent c0b6d2b commit c1dbdd6

14 files changed

Lines changed: 1656 additions & 39 deletions

File tree

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
import { Router } from 'express'
2+
3+
import { createRateLimiter } from '@/api/apiRateLimiter'
4+
import { safeWrap } from '@/middlewares/errorMiddleware'
5+
6+
// TODO: restore once scopes are added to Auth0 staging tenant
7+
// import { requireScopes } from '@/api/public/middlewares/requireScopes'
8+
// import { SCOPES } from '@/security/scopes'
9+
import { activityFeedHandler } from '../ossprey/activityFeed'
10+
import { metricsHandler } from '../ossprey/metrics'
11+
import { packageListHandler } from '../ossprey/packageList'
12+
import { packageScatterHandler } from '../ossprey/packageScatter'
13+
import { batchGetStewardship } from '../packages/batchGetStewardship'
14+
import { getPackage } from '../packages/getPackage'
15+
import { getPackageAdvisories } from '../packages/getPackageAdvisories'
16+
import { getPackageHistory } from '../packages/getPackageHistory'
17+
import { getPackagesMetrics } from '../packages/getPackagesMetrics'
18+
import { assignStewardHandler } from '../stewardships/assignSteward'
19+
import { escalateHandler } from '../stewardships/escalate'
20+
import { openStewardship } from '../stewardships/openStewardship'
21+
import { updateStatusHandler } from '../stewardships/updateStatus'
22+
23+
const rateLimiter = createRateLimiter({ max: 60, windowMs: 60 * 1000 })
24+
25+
export function akritesRouter(): Router {
26+
const router = Router()
27+
28+
router.get('/metrics', safeWrap(metricsHandler))
29+
// /packages/scatter registered before router.use('/packages', ...) so Express evaluates this
30+
// explicit route first; without this ordering the sub-router would receive the request first
31+
// and call next() on no match, adding unnecessary overhead.
32+
router.get('/packages/scatter', rateLimiter, safeWrap(packageScatterHandler))
33+
router.get('/packages', rateLimiter, safeWrap(packageListHandler))
34+
router.get('/activity', safeWrap(activityFeedHandler))
35+
36+
// --- packages ---
37+
router.post(
38+
/^\/packages:batch-stewardship\/?$/,
39+
rateLimiter,
40+
// TODO: restore once read:packages + read:stewardships are added to Auth0 staging tenant
41+
// requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'any'),
42+
safeWrap(batchGetStewardship),
43+
)
44+
const packagesSubRouter = Router()
45+
packagesSubRouter.use(rateLimiter)
46+
packagesSubRouter.get(
47+
'/metrics',
48+
// TODO: restore once read:packages + read:stewardships are added to Auth0 staging tenant
49+
// requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'any'),
50+
safeWrap(getPackagesMetrics),
51+
)
52+
packagesSubRouter.get(
53+
'/detail',
54+
// TODO: restore once read:packages + read:stewardships are added to Auth0 staging tenant
55+
// requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'any'),
56+
safeWrap(getPackage),
57+
)
58+
packagesSubRouter.get(
59+
'/advisories',
60+
// TODO: restore once read:packages + read:stewardships are added to Auth0 staging tenant
61+
// requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'any'),
62+
safeWrap(getPackageAdvisories),
63+
)
64+
packagesSubRouter.get(
65+
'/history',
66+
// TODO: restore once read:packages + read:stewardships are added to Auth0 staging tenant
67+
// requireScopes([SCOPES.READ_PACKAGES, SCOPES.READ_STEWARDSHIPS], 'any'),
68+
safeWrap(getPackageHistory),
69+
)
70+
router.use('/packages', packagesSubRouter)
71+
72+
// --- stewardships ---
73+
const stewardshipsSubRouter = Router()
74+
stewardshipsSubRouter.use(rateLimiter)
75+
stewardshipsSubRouter.post(
76+
'/open',
77+
// TODO: restore once write:stewardships is added to Auth0 staging tenant
78+
// requireScopes([SCOPES.WRITE_STEWARDSHIPS]),
79+
safeWrap(openStewardship),
80+
)
81+
stewardshipsSubRouter.post(
82+
'/:id/assign',
83+
// TODO: restore once write:stewardships is added to Auth0 staging tenant
84+
// requireScopes([SCOPES.WRITE_STEWARDSHIPS]),
85+
safeWrap(assignStewardHandler),
86+
)
87+
stewardshipsSubRouter.post(
88+
'/:id/escalate',
89+
// TODO: restore once write:stewardships is added to Auth0 staging tenant
90+
// requireScopes([SCOPES.WRITE_STEWARDSHIPS]),
91+
safeWrap(escalateHandler),
92+
)
93+
stewardshipsSubRouter.patch(
94+
'/:id/status',
95+
// TODO: restore once write:stewardships is added to Auth0 staging tenant
96+
// requireScopes([SCOPES.WRITE_STEWARDSHIPS]),
97+
safeWrap(updateStatusHandler),
98+
)
99+
router.use('/stewardships', stewardshipsSubRouter)
100+
101+
return router
102+
}

0 commit comments

Comments
 (0)