add handler for RequestValidationError

This commit is contained in:
callebtc 2022-12-14 14:33:13 +01:00
parent f47772d528
commit b5eb8b7ee8

View File

@ -184,10 +184,32 @@ def register_exception_handlers(app: FastAPI):
)
return JSONResponse(
status_code=HTTPStatus.BAD_REQUEST,
status_code=HTTPStatus.NO_CONTENT,
content={"detail": exc_str},
)
@app.exception_handler(RequestValidationError)
async def validation_exception_handler(
request: Request, exc: RequestValidationError
):
# Only the browser sends "text/html" request
# not fail proof, but everything else get's a JSON response
if (
request.headers
and "accept" in request.headers
and "text/html" in request.headers["accept"]
):
return template_renderer().TemplateResponse(
"error.html",
{"request": request, "err": f"{exc.errors()} is not a valid UUID."},
)
return JSONResponse(
status_code=HTTPStatus.NO_CONTENT,
content={"detail": exc.errors()},
)
def configure_logger() -> None:
logger.remove()