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:
alexpaynex
2026-03-18 17:33:21 +00:00
parent 53bc93a9b4
commit f5811da508
3 changed files with 12 additions and 9 deletions

View File

@@ -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;

View File

@@ -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;