Skip to content

Commit 58553c6

Browse files
committed
wip: add exception handler
1 parent 69f3dc3 commit 58553c6

File tree

4 files changed

+11
-10
lines changed

4 files changed

+11
-10
lines changed

app/database.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
from collections.abc import AsyncGenerator
22

33
from rotoger import AppStructLogger
4-
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
54
from sqlalchemy.exc import SQLAlchemyError
5+
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
6+
67
from app.config import settings as global_settings
78

89
logger = AppStructLogger().get_logger()

app/exception_handlers.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
from fastapi import Request
2-
from fastapi.responses import JSONResponse
3-
from sqlalchemy.exc import SQLAlchemyError
41
import orjson
5-
from fastapi import FastAPI
2+
from fastapi import FastAPI, Request
3+
from fastapi.responses import JSONResponse
64
from rotoger import AppStructLogger
5+
from sqlalchemy.exc import SQLAlchemyError
76

87
logger = AppStructLogger().get_logger()
98

10-
async def sqlalchemy_exception_handler(request: Request, exc: SQLAlchemyError) -> JSONResponse:
9+
10+
async def sqlalchemy_exception_handler(
11+
request: Request, exc: SQLAlchemyError
12+
) -> JSONResponse:
1113
request_path = request.url.path
1214
try:
1315
raw_body = await request.body()
@@ -27,6 +29,7 @@ async def sqlalchemy_exception_handler(request: Request, exc: SQLAlchemyError) -
2729
content={"message": "A database error occurred. Please try again later."},
2830
)
2931

32+
3033
def register_exception_handlers(app: FastAPI) -> None:
3134
"""Register all exception handlers with the FastAPI app."""
3235
app.add_exception_handler(SQLAlchemyError, sqlalchemy_exception_handler)

app/main.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,16 @@
77
from fastapi.templating import Jinja2Templates
88
from rotoger import AppStructLogger
99

10-
1110
from app.api.health import router as health_router
1211
from app.api.ml import router as ml_router
1312
from app.api.nonsense import router as nonsense_router
1413
from app.api.shakespeare import router as shakespeare_router
1514
from app.api.stuff import router as stuff_router
1615
from app.api.user import router as user_router
1716
from app.config import settings as global_settings
17+
from app.exception_handlers import register_exception_handlers
1818
from app.redis import get_redis
1919
from app.services.auth import AuthBearer
20-
from app.exception_handlers import register_exception_handlers
2120

2221
logger = AppStructLogger().get_logger()
2322
templates = Jinja2Templates(directory=Path(__file__).parent.parent / "templates")

app/models/base.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ async def save(self, db_session: AsyncSession):
2525
await db_session.refresh(self)
2626
return self
2727

28-
2928
async def delete(self, db_session: AsyncSession):
3029
try:
3130
await db_session.delete(self)
@@ -58,4 +57,3 @@ async def save_or_update(self, db_session: AsyncSession):
5857
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
5958
detail=repr(exception),
6059
) from exception
61-

0 commit comments

Comments
 (0)