X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmiddlewares%2Fvalidators%2Fshared%2Futils.ts;h=410de4d80a04e71199e327f6faf52cf7ade83d9e;hb=a3b472a12ec6e57dbe2f650419f8064864686eab;hp=d3e4870a92eba9dc1dc912291151a1a69db48b47;hpb=10363c74c1d869f0e0c7bc4d0367b1f34d1bb6a4;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/middlewares/validators/shared/utils.ts b/server/middlewares/validators/shared/utils.ts index d3e4870a9..410de4d80 100644 --- a/server/middlewares/validators/shared/utils.ts +++ b/server/middlewares/validators/shared/utils.ts @@ -1,5 +1,6 @@ -import * as express from 'express' -import { query, validationResult } from 'express-validator' +import express from 'express' +import { param, validationResult } from 'express-validator' +import { isIdOrUUIDValid, toCompleteUUID } from '@server/helpers/custom-validators/misc' import { logger } from '../../../helpers/logger' function areValidationErrors (req: express.Request, res: express.Response) { @@ -7,6 +8,7 @@ function areValidationErrors (req: express.Request, res: express.Response) { if (!errors.isEmpty()) { logger.warn('Incorrect request parameters', { path: req.originalUrl, err: errors.mapped() }) + res.fail({ message: 'Incorrect request parameters: ' + Object.keys(errors.mapped()).join(', '), instance: req.originalUrl, @@ -21,30 +23,22 @@ function areValidationErrors (req: express.Request, res: express.Response) { return false } -function checkSort (sortableColumns: string[], tags: string[] = []) { - return [ - query('sort').optional().isIn(sortableColumns).withMessage('Should have correct sortable column'), - - (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking sort parameters', { parameters: req.query, tags }) - - if (areValidationErrors(req, res)) return - - return next() - } - ] +function isValidVideoIdParam (paramName: string) { + return param(paramName) + .customSanitizer(toCompleteUUID) + .custom(isIdOrUUIDValid).withMessage('Should have a valid video id') } -function createSortableColumns (sortableColumns: string[]) { - const sortableColumnDesc = sortableColumns.map(sortableColumn => '-' + sortableColumn) - - return sortableColumns.concat(sortableColumnDesc) +function isValidPlaylistIdParam (paramName: string) { + return param(paramName) + .customSanitizer(toCompleteUUID) + .custom(isIdOrUUIDValid).withMessage('Should have a valid playlist id') } // --------------------------------------------------------------------------- export { areValidationErrors, - checkSort, - createSortableColumns + isValidVideoIdParam, + isValidPlaylistIdParam }