diff --git a/src/common/utils/httpHandlers.ts b/src/common/utils/httpHandlers.ts index 51f1eb99..15493ead 100644 --- a/src/common/utils/httpHandlers.ts +++ b/src/common/utils/httpHandlers.ts @@ -9,9 +9,18 @@ export const validateRequest = (schema: ZodSchema) => async (req: Request, res: await schema.parseAsync({ body: req.body, query: req.query, params: req.params }); next(); } catch (err) { - const errorMessage = `Invalid input: ${(err as ZodError).errors.map((e) => e.message).join(", ")}`; - const statusCode = StatusCodes.BAD_REQUEST; - const serviceResponse = ServiceResponse.failure(errorMessage, null, statusCode); - res.status(serviceResponse.statusCode).send(serviceResponse); + const errors = (err as ZodError).errors.map((e) => { + const fieldPath = e.path.length > 0 ? e.path.join('.') : 'root'; + return `${fieldPath}: ${e.message}`; + }); + + const errorMessage = + errors.length === 1 + ? `Invalid input: ${errors[0]}` + : `Invalid input (${errors.length} errors): ${errors.join('; ')}`; + + const statusCode = HTTP_STATUS_CODES.BAD_REQUEST; + const serviceResponse = ServiceResponse.failure(errorMessage, null, statusCode); + res.status(serviceResponse.statusCode).send(serviceResponse); } };