Spaces:
Sleeping
Sleeping
Download src/middlewares/validate.middleware.ts from Anoderb/Tokiva-backend-Node: direct link, hf CLI and curl.
- Browser
- Download file 969 Bytes
-
https://huggingface.co/spaces/Anoderb/Tokiva-backend-Node/resolve/main/src/middlewares/validate.middleware.ts
- Command line
-
hf download hf://spaces/Anoderb/Tokiva-backend-Node/src/middlewares/validate.middleware.ts
-
curl -L -o validate.middleware.ts https://huggingface.co/spaces/Anoderb/Tokiva-backend-Node/resolve/main/src/middlewares/validate.middleware.ts
969 Bytes
| import { Request, Response, NextFunction } from 'express'; | |
| import { AnyZodObject, ZodError } from 'zod'; | |
| export const validate = (schema: AnyZodObject) => { | |
| return async (req: Request, res: Response, next: NextFunction) => { | |
| try { | |
| const parsed = await schema.parseAsync({ | |
| body: req.body, | |
| query: req.query, | |
| params: req.params, | |
| }); | |
| if (parsed.body !== undefined) req.body = parsed.body; | |
| if (parsed.query !== undefined) req.query = parsed.query; | |
| if (parsed.params !== undefined) req.params = parsed.params; | |
| return next(); | |
| } catch (error) { | |
| if (error instanceof ZodError) { | |
| return res.status(400).json({ | |
| sukses: false, | |
| pesan: 'Validasi input gagal', | |
| errors: error.errors.map((err) => ({ | |
| field: err.path.slice(1).join('.'), | |
| message: err.message, | |
| })), | |
| }); | |
| } | |
| return next(error); | |
| } | |
| }; | |
| }; | |