1 import * as express from 'express'
2 import { query, validationResult } from 'express-validator'
3 import { logger } from '../../helpers/logger'
4 import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
6 function areValidationErrors (req: express.Request, res: express.Response) {
7 const errors = validationResult(req)
9 if (!errors.isEmpty()) {
10 logger.warn('Incorrect request parameters', { path: req.originalUrl, err: errors.mapped() })
11 res.status(HttpStatusCode.BAD_REQUEST_400)
12 .json({ errors: errors.mapped() })
20 function checkSort (sortableColumns: string[]) {
22 query('sort').optional().isIn(sortableColumns).withMessage('Should have correct sortable column'),
24 (req: express.Request, res: express.Response, next: express.NextFunction) => {
25 logger.debug('Checking sort parameters', { parameters: req.query })
27 if (areValidationErrors(req, res)) return
34 function createSortableColumns (sortableColumns: string[]) {
35 const sortableColumnDesc = sortableColumns.map(sortableColumn => '-' + sortableColumn)
37 return sortableColumns.concat(sortableColumnDesc)
40 // ---------------------------------------------------------------------------