]>
Commit | Line | Data |
---|---|---|
41fb13c3 C |
1 | import cors from 'cors' |
2 | import express from 'express' | |
e5a781ec | 3 | import { buildRateLimiter } from '@server/middlewares' |
c0e8b12e | 4 | import { HttpStatusCode } from '../../../shared/models' |
444c0a0e C |
5 | import { badRequest } from '../../helpers/express-utils' |
6 | import { CONFIG } from '../../initializers/config' | |
d95d1559 | 7 | import { abuseRouter } from './abuse' |
444c0a0e | 8 | import { accountsRouter } from './accounts' |
80badf49 | 9 | import { blocklistRouter } from './blocklist' |
444c0a0e | 10 | import { bulkRouter } from './bulk' |
65fcc311 | 11 | import { configRouter } from './config' |
2539932e | 12 | import { customPageRouter } from './custom-page' |
da854ddd | 13 | import { jobsRouter } from './jobs' |
fd3c2e87 | 14 | import { metricsRouter } from './metrics' |
da854ddd | 15 | import { oauthClientsRouter } from './oauth-clients' |
444c0a0e C |
16 | import { overviewsRouter } from './overviews' |
17 | import { pluginRouter } from './plugins' | |
18 | import { searchRouter } from './search' | |
4610bc5b | 19 | import { serverRouter } from './server' |
65fcc311 | 20 | import { usersRouter } from './users' |
48dce1c9 | 21 | import { videoChannelRouter } from './video-channel' |
fd3c2e87 | 22 | import { videoChannelSyncRouter } from './video-channel-sync' |
418d092a | 23 | import { videoPlaylistRouter } from './video-playlist' |
444c0a0e | 24 | import { videosRouter } from './videos' |
65fcc311 C |
25 | |
26 | const apiRouter = express.Router() | |
27 | ||
12daa837 WL |
28 | apiRouter.use(cors({ |
29 | origin: '*', | |
30 | exposedHeaders: 'Retry-After', | |
31 | credentials: true | |
32 | })) | |
33 | ||
e5a781ec | 34 | const apiRateLimiter = buildRateLimiter({ |
c1340a6a C |
35 | windowMs: CONFIG.RATES_LIMIT.API.WINDOW_MS, |
36 | max: CONFIG.RATES_LIMIT.API.MAX | |
37 | }) | |
38 | apiRouter.use(apiRateLimiter) | |
39 | ||
4610bc5b | 40 | apiRouter.use('/server', serverRouter) |
d95d1559 | 41 | apiRouter.use('/abuses', abuseRouter) |
444c0a0e | 42 | apiRouter.use('/bulk', bulkRouter) |
0a381679 | 43 | apiRouter.use('/oauth-clients', oauthClientsRouter) |
65fcc311 | 44 | apiRouter.use('/config', configRouter) |
65fcc311 | 45 | apiRouter.use('/users', usersRouter) |
265ba139 | 46 | apiRouter.use('/accounts', accountsRouter) |
48dce1c9 | 47 | apiRouter.use('/video-channels', videoChannelRouter) |
2a491182 | 48 | apiRouter.use('/video-channel-syncs', videoChannelSyncRouter) |
418d092a | 49 | apiRouter.use('/video-playlists', videoPlaylistRouter) |
65fcc311 | 50 | apiRouter.use('/videos', videosRouter) |
5cd80545 | 51 | apiRouter.use('/jobs', jobsRouter) |
fd3c2e87 | 52 | apiRouter.use('/metrics', metricsRouter) |
57c36b27 | 53 | apiRouter.use('/search', searchRouter) |
2d3741d6 | 54 | apiRouter.use('/overviews', overviewsRouter) |
d00dc28d | 55 | apiRouter.use('/plugins', pluginRouter) |
2539932e | 56 | apiRouter.use('/custom-pages', customPageRouter) |
80badf49 | 57 | apiRouter.use('/blocklist', blocklistRouter) |
65fcc311 C |
58 | apiRouter.use('/ping', pong) |
59 | apiRouter.use('/*', badRequest) | |
60 | ||
61 | // --------------------------------------------------------------------------- | |
62 | ||
63 | export { apiRouter } | |
64 | ||
65 | // --------------------------------------------------------------------------- | |
66 | ||
dae86118 | 67 | function pong (req: express.Request, res: express.Response) { |
2d53be02 | 68 | return res.send('pong').status(HttpStatusCode.OK_200).end() |
65fcc311 | 69 | } |