refactor: consolidate get_db into single module

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-02-09 15:37:23 +00:00
parent cd6fd95d50
commit 98cf9e0e0b
5 changed files with 6 additions and 30 deletions
-10
View File
@@ -9,21 +9,11 @@ from pathlib import Path
from fastapi import HTTPException, status from fastapi import HTTPException, status
from app.config import settings from app.config import settings
from app.database import SessionLocal
# Set up logging # Set up logging
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def get_db():
"""Database dependency injection for routes"""
db = SessionLocal()
try:
yield db
finally:
db.close()
def resolve_file_path(file_path: str, subfolder: str = None) -> str: def resolve_file_path(file_path: str, subfolder: str = None) -> str:
""" """
Resolves a file path to an absolute path with path traversal protection. Resolves a file path to an absolute path with path traversal protection.
+1 -1
View File
@@ -12,9 +12,9 @@ from fastapi import APIRouter, Depends, File, HTTPException, Query, Request, Upl
from sqlalchemy import asc, desc, or_ from sqlalchemy import asc, desc, or_
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from app.api.common import get_db
from app.auth import require_login from app.auth import require_login
from app.config import settings from app.config import settings
from app.database import get_db
from app.models import FileRecord, ProcessingLog from app.models import FileRecord, ProcessingLog
from app.tasks.convert_to_pdf import convert_to_pdf from app.tasks.convert_to_pdf import convert_to_pdf
from app.tasks.process_document import process_document from app.tasks.process_document import process_document
+1 -1
View File
@@ -9,8 +9,8 @@ from fastapi import APIRouter, Depends, HTTPException, Query, Request
from sqlalchemy import desc from sqlalchemy import desc
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from app.api.common import get_db
from app.auth import require_login from app.auth import require_login
from app.database import get_db
from app.models import FileRecord, ProcessingLog from app.models import FileRecord, ProcessingLog
# Set up logging # Set up logging
+1 -12
View File
@@ -11,7 +11,7 @@ from sqlalchemy.orm import Session # noqa: F401
from app.auth import require_login # noqa: F401 from app.auth import require_login # noqa: F401
from app.config import settings from app.config import settings
from app.database import SessionLocal from app.database import get_db # noqa: F401
# Set up Jinja2 templates # Set up Jinja2 templates
templates_dir = Path(__file__).parent.parent.parent / "frontend" / "templates" templates_dir = Path(__file__).parent.parent.parent / "frontend" / "templates"
@@ -39,14 +39,3 @@ templates.TemplateResponse = template_response_with_version
# Set up logging # Set up logging
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def get_db():
"""
Dependency to get a database session.
"""
db = SessionLocal()
try:
yield db
finally:
db.close()
+3 -6
View File
@@ -63,9 +63,8 @@ def db_session():
def client(db_session) -> TestClient: def client(db_session) -> TestClient:
"""Create a test client with a fresh database.""" """Create a test client with a fresh database."""
# Import all the different get_db functions used across the app # Import the canonical get_db function
from app.api.common import get_db as api_get_db from app.database import get_db
from app.views.base import get_db as views_get_db
# Override the get_db dependency to use our test database # Override the get_db dependency to use our test database
def override_get_db(): def override_get_db():
@@ -74,10 +73,8 @@ def client(db_session) -> TestClient:
finally: finally:
pass pass
# Override all variants of get_db # Override the single canonical get_db dependency
fastapi_app.dependency_overrides[get_db] = override_get_db fastapi_app.dependency_overrides[get_db] = override_get_db
fastapi_app.dependency_overrides[api_get_db] = override_get_db
fastapi_app.dependency_overrides[views_get_db] = override_get_db
# Use base_url to satisfy TrustedHostMiddleware # Use base_url to satisfy TrustedHostMiddleware
with TestClient(fastapi_app, base_url="http://localhost") as test_client: with TestClient(fastapi_app, base_url="http://localhost") as test_client: