feat(api): add global error handler with typed error classes
- Add AppError base class, ValidationError (400), NotFoundError (404) - Add central error middleware in app.ts - Remove inline safeParse error handling from controllers - Replace plain Error throws with NotFoundError in gameService
This commit is contained in:
parent
dd6c2b0118
commit
48457936e8
7 changed files with 114 additions and 24 deletions
|
|
@ -34,6 +34,25 @@ async function main() {
|
|||
`${question.prompt}: ${result.data.isCorrect ? "✓" : "✗"} (picked ${0}, correct was ${result.data.correctOptionId})`,
|
||||
);
|
||||
}
|
||||
|
||||
const badRequest = await fetch("http://localhost:3000/api/v1/game/start", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ source_language: "en" }),
|
||||
});
|
||||
console.log("400 test:", badRequest.status, await badRequest.json());
|
||||
|
||||
// Send a valid shape but a session that doesn't exist
|
||||
const notFound = await fetch("http://localhost:3000/api/v1/game/answer", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({
|
||||
sessionId: "00000000-0000-0000-0000-000000000000",
|
||||
questionId: "00000000-0000-0000-0000-000000000000",
|
||||
selectedOptionId: 0,
|
||||
}),
|
||||
});
|
||||
console.log("404 test:", notFound.status, await notFound.json());
|
||||
}
|
||||
|
||||
main();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue