@sphereon/ssi-sdk.siopv2-oid4vp-rp-rest-api
Version:
21 lines (19 loc) • 706 B
text/typescript
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' })
}
}
}
}