UNPKG

@sphereon/ssi-sdk.siopv2-oid4vp-rp-rest-api

Version:

21 lines (19 loc) 706 B
import { Request, Response, NextFunction } from 'express' import { z, ZodError } from 'zod' export const validateData = (schema: z.ZodObject<any, any>) => { return (req: Request, res: Response, next: NextFunction) => { try { schema.parse(req.body) next() } catch (error) { if (error instanceof ZodError) { const errorMessages = error.issues.map((issue: any) => ({ message: `${issue.path.join('.')} is ${issue.message}`, })) res.status(400).json({ status: 400, message: 'Invalid data', error_details: errorMessages[0].message }) } else { res.status(500).json({ status: 500, message: 'Internal Server Error' }) } } } }