Skip to content
Snippets Groups Projects
Select Git revision
  • fd49131b748706b9aa2328ceb05a33310f1be60b
  • main default protected
  • jw_sonar
  • v6.0.0 protected
  • bedran_exercise-list
  • ask-user-to-delete-exercises-on-duplicates
  • update-dependencies
  • jw_sonar_backup
  • add_route_assignments
  • 6.0.0-dev
  • 5.0.1
  • 5.0.0
  • 4.1.0
  • 4.0.0
  • 3.5.3
  • 3.5.2
  • 3.5.1
  • 3.5.0
  • 3.4.2
  • 3.4.1
  • 3.4.0
  • 3.3.0
  • 3.2.0
  • 3.1.3
  • 3.1.2
  • 3.1.1
  • 3.1.0
  • 3.0.1
  • 3.0.0
29 results

SecurityMiddleware.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();