flwo / apps /server /src /middleware /validate.js
moustafa7's picture
Initial commit
24727a3
Raw History Blame Contribute Delete
615 Bytes
import fs from 'fs'
export function validate(schema, source = 'body') {
return (req, res, next) => {
const data = source === 'body' ? req.body
: source === 'params' ? req.params
: req.query
const result = schema.safeParse(data)
if (!result.success) {
if (req.file?.path) {
fs.unlink(req.file.path, () => {})
}
return res.status(400).json({
error: 'بيانات غير صحيحة',
code: 'VALIDATION_ERROR',
details: result.error.flatten().fieldErrors
})
}
req.validatedData = result.data
next()
}
}