Skip to content

Commit eb7aa28

Browse files
committed
rollback mw active session before closing
1 parent 4aef046 commit eb7aa28

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

genotype_api/api/middleware.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from fastapi import Request
22
from starlette.middleware.base import BaseHTTPMiddleware
3-
from genotype_api.database.database import close_session
3+
4+
from genotype_api.database.database import close_session, get_session
45

56

67
class DBSessionMiddleware(BaseHTTPMiddleware):
@@ -10,6 +11,11 @@ def __init__(self, app):
1011
async def dispatch(self, request: Request, call_next):
1112
try:
1213
response = await call_next(request)
14+
except Exception as e:
15+
raise e
1316
finally:
17+
session = get_session()
18+
if session.is_active:
19+
session.rollback()
1420
close_session()
1521
return response

genotype_api/database/database.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,6 @@ def get_tables() -> list[str]:
6161
return inspector.get_table_names()
6262

6363

64-
def close_session() -> None:
64+
def close_session():
6565
"""Close the global database session of the genotype api."""
66-
if SESSION:
67-
session = SESSION()
68-
if session.is_active:
69-
session.rollback()
70-
SESSION.remove()
66+
SESSION.remove()

0 commit comments

Comments
 (0)