Spaces:
Paused
Paused
| import { Request, Response, NextFunction } from "express"; | |
| import { z } from "zod"; | |
| const pingMessageSchema = z.object({ | |
| message: z | |
| .string() | |
| .min(1, "Message is required and must be a non-empty string"), | |
| numbers: z | |
| .array( | |
| z | |
| .string() | |
| .min(12, "Each number must be at least 12 characters long") | |
| .regex( | |
| /^\d{12}$/, | |
| "Invalid phone number format. Correct example: 123456789012" | |
| ) | |
| ) | |
| .max(5, "You can provide a maximum of 5 phone numbers"), | |
| image: z.string().optional() | |
| }); | |
| const validatePingMessage = ( | |
| req: Request, | |
| res: Response, | |
| next: NextFunction | |
| ): void => { | |
| try { | |
| pingMessageSchema.parse(req.body); | |
| next(); | |
| } catch (error) { | |
| if (error instanceof z.ZodError) { | |
| res.status(400).json({ errors: error.errors }); | |
| } else { | |
| res.status(500).json({ message: "Internal Server Error" }); | |
| } | |
| } | |
| }; | |
| export default validatePingMessage; | |