mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-12-28 02:48:43 +08:00
parent
f92c1023bb
commit
6458b248d7
1 changed files with 16 additions and 8 deletions
|
|
@ -77,7 +77,7 @@ export function addApiRoutes(app: Application): void {
|
|||
function applyTsRestApiRoutes(app: IRouter): void {
|
||||
createExpressEndpoints(contract, router, app, {
|
||||
jsonQuery: true,
|
||||
requestValidationErrorHandler(err, _req, res, next) {
|
||||
requestValidationErrorHandler(err, req, res, _next) {
|
||||
let message: string | undefined = undefined;
|
||||
let validationErrors: string[] | undefined = undefined;
|
||||
|
||||
|
|
@ -90,16 +90,24 @@ function applyTsRestApiRoutes(app: IRouter): void {
|
|||
} else if (err.body?.issues !== undefined) {
|
||||
message = "Invalid request data schema";
|
||||
validationErrors = err.body.issues.map(prettyErrorMessage);
|
||||
}
|
||||
|
||||
if (message !== undefined) {
|
||||
res
|
||||
.status(422)
|
||||
.json({ message, validationErrors } as MonkeyValidationError);
|
||||
} else if (err.headers?.issues !== undefined) {
|
||||
message = "Invalid header schema";
|
||||
validationErrors = err.headers.issues.map(prettyErrorMessage);
|
||||
} else {
|
||||
next();
|
||||
Logger.error(
|
||||
`Unknown validation error for ${req.method} ${
|
||||
req.path
|
||||
}: ${JSON.stringify(err)}`
|
||||
);
|
||||
res
|
||||
.status(500)
|
||||
.json({ message: "Unknown validation error. Contact support." });
|
||||
return;
|
||||
}
|
||||
|
||||
res
|
||||
.status(422)
|
||||
.json({ message, validationErrors } as MonkeyValidationError);
|
||||
},
|
||||
globalMiddleware: [authenticateTsRestRequest()],
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue