Skip to content
Snippets Groups Projects
Select Git revision
  • bdcfaffc04421d131cc63636a7c2b84a20cfadc5
  • main default protected
  • jw_sonar
  • v5.0
  • open_tool_for_self_hosting
  • jw_sonar_backup
  • move-to-esm-only
  • v4.2
  • v4.1
9 results

ExerciceHelper.ts

Blame
  • ParamsValidatorMiddleware.ts 1.05 KiB
    import * as ExpressValidator from 'express-validator';
    import express               from 'express';
    import { StatusCodes }       from 'http-status-codes';
    
    
    class ParamsValidatorMiddleware {
        validate(validations: Array<ExpressValidator.ValidationChain> | ExpressValidator.Schema): (req: express.Request, res: express.Response, next: express.NextFunction) => void {
            return (req: express.Request, res: express.Response, next: express.NextFunction) => {
                if ( !(validations instanceof Array) ) {
                    validations = ExpressValidator.checkSchema(validations);
                }
    
                void Promise.all(validations.map(validation => validation.run(req))).then(() => {
                    const errors = ExpressValidator.validationResult(req);
                    if ( !errors.isEmpty() ) {
                        req.session.sendResponse(res, StatusCodes.BAD_REQUEST, { errors: errors.array() });
                        return;
                    }
    
                    next();
                });
            };
        }
    }
    
    
    export default new ParamsValidatorMiddleware();