diff --git a/exceptions.py b/exceptions.py index 0e56d57..fe5aab7 100644 --- a/exceptions.py +++ b/exceptions.py @@ -1,17 +1,2 @@ -from fastapi import Request, status -from fastapi.responses import JSONResponse - - class NoProjectMembershipException(Exception): pass - - -# pylint: disable=unused-argument -async def no_project_membership_exception_handler( - request: Request, - exc: NoProjectMembershipException, -): - return JSONResponse( - status_code=status.HTTP_403_FORBIDDEN, - content={"detail": "User does not have access to this project"}, - ) diff --git a/main.py b/main.py index 608e3fb..a24b28f 100644 --- a/main.py +++ b/main.py @@ -1,14 +1,13 @@ import os import sentry_sdk -from fastapi import FastAPI +from fastapi import FastAPI, Request, status from fastapi.middleware.cors import CORSMiddleware +from fastapi.responses import JSONResponse from api import config, connect, data, deployments, hdf5, infra, vms -from exceptions import ( - NoProjectMembershipException, - no_project_membership_exception_handler, -) +from exceptions import NoProjectMembershipException + sentry_sdk.init( dsn=os.getenv("SENTRY_DSN"), @@ -18,10 +17,6 @@ app = FastAPI() -app.add_exception_handler( - NoProjectMembershipException, no_project_membership_exception_handler -) - app.add_middleware( CORSMiddleware, allow_origins=os.getenv("CORS_ALLOWED_ORIGIN", "").split(" "), @@ -37,3 +32,15 @@ app.include_router(config.router) app.include_router(infra.router) app.include_router(hdf5.router) + + +@app.exception_handler(NoProjectMembershipException) +# pylint: disable=unused-argument +async def no_project_membership_exception_handler( + request: Request, + exc: NoProjectMembershipException, +): + return JSONResponse( + status_code=status.HTTP_403_FORBIDDEN, + content={"detail": "User does not have access to this project"}, + ) diff --git a/requirements.txt b/requirements.txt index b26b4b0..440c9a9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,7 @@ azure-storage-file==2.1.0 black==23.12.1 h5grove @ git+https://github.com/wiwski/h5grove.git@feature/filepath-resolver httpx==0.27.0 -fastapi==0.100.0 +fastapi==0.110.1 isort==5.13.2 mypy==1.0.1 pydantic-settings==2.2.1