]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/middlewares/validators/pagination.ts
Merge branch 'release/5.0.0' into develop
[github/Chocobozzz/PeerTube.git] / server / middlewares / validators / pagination.ts
1 import express from 'express'
2 import { query } from 'express-validator'
3 import { PAGINATION } from '@server/initializers/constants'
4 import { areValidationErrors } from './shared'
5
6 const paginationValidator = paginationValidatorBuilder()
7
8 function paginationValidatorBuilder (tags: string[] = []) {
9 return [
10 query('start')
11 .optional()
12 .isInt({ min: 0 }),
13 query('count')
14 .optional()
15 .isInt({ min: 0, max: PAGINATION.GLOBAL.COUNT.MAX }).withMessage(`Should have a number count (max: ${PAGINATION.GLOBAL.COUNT.MAX})`),
16
17 (req: express.Request, res: express.Response, next: express.NextFunction) => {
18 if (areValidationErrors(req, res, { tags })) return
19
20 return next()
21 }
22 ]
23 }
24
25 // ---------------------------------------------------------------------------
26
27 export {
28 paginationValidator,
29 paginationValidatorBuilder
30 }