grants/server/middleware/validate.ts
gdegelas a05331128b Atlas Green Morocco — grant strategy platform
- Full grant strategy framework for renewable energy & green hydrogen
- AI-powered grant studio, partner outreach, financial modeling
- Umami analytics with data-performance tracking
- Live Degelas metrics connected to solar.degelas.be
- Trilingual (EN/FR/AR) with i18n support
- Dockerized with Nginx frontend + Express API proxy
2026-06-01 09:44:03 +00:00

46 lines
1.2 KiB
TypeScript

import type { Request, Response, NextFunction } from "express";
import { z } from "zod";
/**
* Request validation middleware factory.
* Validates req.body against a Zod schema.
* Returns 400 with validation errors if invalid.
*/
export function validateBody<T extends z.ZodType>(schema: T) {
return (req: Request, res: Response, next: NextFunction) => {
const result = schema.safeParse(req.body);
if (!result.success) {
return res.status(400).json({
ok: false,
error: "Invalid request body",
details: result.error.issues.map((e) => ({
path: e.path.join("."),
message: e.message,
})),
});
}
next();
};
}
/**
* Query parameter validation middleware factory.
*/
export function validateQuery<T extends z.ZodType>(schema: T) {
return (req: Request, res: Response, next: NextFunction) => {
const result = schema.safeParse(req.query);
if (!result.success) {
return res.status(400).json({
ok: false,
error: "Invalid query parameters",
details: result.error.issues.map((e) => ({
path: e.path.join("."),
message: e.message,
})),
});
}
next();
};
}