modarb-be / src /helpers /validation.helper.ts
moahmedwafy's picture
refactors
e9affa5
raw
history blame
1 kB
import { JsonResponse } from "@lib/responses/json-response";
import { NextFunction, Request, Response } from "express";
import { createValidator } from "express-joi-validation";
import Joi from "joi";
const validator = createValidator({ passError: true });
export const bodyValidator = validator.body;
export const queryValidator = validator.query;
export const paramsValidator = (schemaOrParam: Joi.Schema | string) =>
typeof schemaOrParam === "string"
? validator.params(Joi.object({ [schemaOrParam]: Joi.string().required() }))
: validator.params(schemaOrParam);
export const validationErrorHandler = (
err,
_req: Request,
res: Response,
next: NextFunction
) => {
if (err && err.error && err.error.isJoi) {
console.log(`err`, err.error);
const errors = err.error.details.map((detail) => detail.message);
return JsonResponse.validationError(
{
errors,
},
res
);
} else {
// pass on to another error handler
next(err);
}
};