export function valUPM() {
return (req: Request, _res: Response, next: NextFunction) => {
req
.checkBody(
"paymentType",
`paymentType: ${messages.getFromSession(req, "mustNotBeEmpty")}`
)
.notEmpty();
if (req.body.paymentType === "USP") {
req
.checkBody(
"storeId",
`storeId: ${messages.getFromSession(req, "mustNotBeEmpty")}`
)
.notEmpty();
} else if (req.body.paymentType === "CC") {
if (req.body.register) {
req
.checkBody(
"register",
`register: ${messages.getFromSession(req, "mustBeBoolean")}`
)
.isBoolean();
} else {
req
.checkBody(
"register",
`register: ${messages.getFromSession(req, "mustNotBeEmpty")}`
)
.notEmpty();
}
}
req.getValidationResult().then(errs => {
if (errs.isEmpty()) {
return next();
}
const error = new BFFError(
400,
"BadRequest",
1,
errs.array().map(error => {
return { [error.param]: error.msg };
})
);
return next(Error(JSON.stringify(error)));
});
};
}
После изменения API, как реализовать этот тип логики в экспресс-валидаторах
Вызов req.checkBody или требуемой функции проверки внутри цикла if сделал то же самое, как показано выше, но после изменения вAPI, как это можно реализовать Я попытался обойти проверку PaymentTYpe как пользовательский валидатор и реализовать проверки и выдать сообщение внутри пользовательского валидатора, но ключи изменились.
Использование текущего APi, что является правильнымспособ сделать это, так как это будет полезно для всех людей, которые хотят обновить версию 3.0.0 до API экспресс-валидатора