Improve input validation and error messaging for user requests
Update API endpoints for jobs and demo routes to enforce a maximum character limit of 500 for the 'request' field. Refine error messages to distinguish between missing input and input exceeding the character limit. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 418bf6f8-212b-4bb0-a7a5-8231a061da4e Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 8c43b6a7-30d3-4806-8d46-3d364b17c284 Replit-Helium-Checkpoint-Created: true
This commit is contained in:
@@ -41,14 +41,13 @@ router.get("/demo", async (req: Request, res: Response) => {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!req.query.request) {
|
||||
res.status(400).json({ error: "Missing required query param: request" });
|
||||
return;
|
||||
}
|
||||
|
||||
const parseResult = RunDemoQueryParams.safeParse(req.query);
|
||||
if (!parseResult.success) {
|
||||
res.status(400).json({ error: "Invalid query param: request must be a non-empty string" });
|
||||
const issue = parseResult.error.issues[0];
|
||||
const error = issue?.code === "too_big"
|
||||
? "Invalid query param: 'request' must be 500 characters or fewer"
|
||||
: "Missing required query param: request";
|
||||
res.status(400).json({ error });
|
||||
return;
|
||||
}
|
||||
const { request } = parseResult.data;
|
||||
|
||||
@@ -139,7 +139,11 @@ async function advanceJob(job: Job): Promise<Job | null> {
|
||||
router.post("/jobs", async (req: Request, res: Response) => {
|
||||
const parseResult = CreateJobBody.safeParse(req.body);
|
||||
if (!parseResult.success) {
|
||||
res.status(400).json({ error: "Invalid request: 'request' string is required" });
|
||||
const issue = parseResult.error.issues[0];
|
||||
const error = issue?.code === "too_big"
|
||||
? "Invalid request: 'request' must be 500 characters or fewer"
|
||||
: "Invalid request: 'request' string is required";
|
||||
res.status(400).json({ error });
|
||||
return;
|
||||
}
|
||||
const { request } = parseResult.data;
|
||||
|
||||
Reference in New Issue
Block a user