apiv1-form-validator.ts 804 B

123456789101112131415161718192021222324252627
  1. import type { NextFunction, Request, Response } from 'express';
  2. import { validationResult } from 'express-validator';
  3. import loggerFactory from '~/utils/logger';
  4. import ApiResponse from '../util/apiResponse';
  5. const logger = loggerFactory('growi:middlewares:ApiV1FormValidator');
  6. export default (req: Request, res: Response, next: NextFunction): void => {
  7. logger.debug('req.query', req.query);
  8. logger.debug('req.params', req.params);
  9. logger.debug('req.body', req.body);
  10. const errObjArray = validationResult(req);
  11. if (errObjArray.isEmpty()) {
  12. next();
  13. return;
  14. }
  15. const errs = errObjArray.array().map((err) => {
  16. logger.error(`${err.location}.${err.param}: ${err.msg}`);
  17. return ApiResponse.error(`${err.param}: ${err.msg}`, 'validation_failed');
  18. });
  19. res.json(errs);
  20. };