Move Controller.validate to static Validator.validate
This commit is contained in:
parent
bb8b44b5a3
commit
b8905ea02b
@ -2,7 +2,6 @@ import express, {IRouter, RequestHandler, Router} from "express";
|
||||
import {PathParams} from "express-serve-static-core";
|
||||
import config from "config";
|
||||
import {log} from "./Logger";
|
||||
import Validator, {ValidationBag} from "./db/Validator";
|
||||
import FileUploadMiddleware from "./FileUploadMiddleware";
|
||||
import * as querystring from "querystring";
|
||||
import {ParsedUrlQueryInput} from "querystring";
|
||||
@ -171,25 +170,6 @@ export default abstract class Controller {
|
||||
}
|
||||
}
|
||||
|
||||
protected async validate(
|
||||
validationMap: { [p: string]: Validator<unknown> },
|
||||
body: { [p: string]: unknown },
|
||||
): Promise<void> {
|
||||
const bag = new ValidationBag();
|
||||
|
||||
for (const p of Object.keys(validationMap)) {
|
||||
try {
|
||||
await validationMap[p].execute(p, body[p], false);
|
||||
} catch (e) {
|
||||
if (e instanceof ValidationBag) {
|
||||
bag.addBag(e);
|
||||
} else throw e;
|
||||
}
|
||||
}
|
||||
|
||||
if (bag.hasMessages()) throw bag;
|
||||
}
|
||||
|
||||
protected getApp(): Application {
|
||||
if (!this.app) throw new Error('Application not initialized.');
|
||||
return this.app;
|
||||
|
@ -6,6 +6,26 @@ import {ServerError} from "../HttpError";
|
||||
export const EMAIL_REGEX = /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/;
|
||||
|
||||
export default class Validator<V> {
|
||||
public static async validate(
|
||||
validationMap: { [p: string]: Validator<unknown> },
|
||||
body: { [p: string]: unknown },
|
||||
): Promise<void> {
|
||||
const bag = new ValidationBag();
|
||||
|
||||
for (const p of Object.keys(validationMap)) {
|
||||
try {
|
||||
await validationMap[p].execute(p, body[p], false);
|
||||
} catch (e) {
|
||||
if (e instanceof ValidationBag) {
|
||||
bag.addBag(e);
|
||||
} else throw e;
|
||||
}
|
||||
}
|
||||
|
||||
if (bag.hasMessages()) throw bag;
|
||||
}
|
||||
|
||||
|
||||
private readonly steps: ValidationStep<V>[] = [];
|
||||
private readonly validationAttributes: string[] = [];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user