Files
xiaoxia-saas/apps/api/app/dependencies.py
T
Xiaoxia AI b06201e503
Deploy / Deploy Staging (push) Failing after 6s
Deploy / Deploy Production (push) Has been skipped
Tests / test (push) Failing after 16s
Tests / lint (push) Failing after 16s
fix(phase7): align api runtime wiring for integration
2026-06-17 18:48:08 +08:00

41 lines
1.6 KiB
Python

from fastapi import Depends
from sqlalchemy.orm import Session
from app.config import settings
from packages.adapters.sqlalchemy_impl.asset_library_repository import SQLAlchemyAssetLibraryRepository
from packages.adapters.sqlalchemy_impl.asset_repository import SQLAlchemyAssetRepository
from packages.adapters.sqlalchemy_impl.classification_job_repository import SQLAlchemyClassificationJobRepository
from packages.adapters.sqlalchemy_impl.ingest_job_repository import SQLAlchemyIngestJobRepository
from packages.adapters.sqlalchemy_impl.project_repository import SQLAlchemyProjectRepository
from packages.adapters.sqlalchemy_impl.session import build_session_factory
_engine, _SessionLocal = build_session_factory(settings.DATABASE_URL)
def get_db_session():
session: Session = _SessionLocal()
try:
yield session
finally:
session.close()
def get_asset_repository(session: Session = Depends(get_db_session)) -> SQLAlchemyAssetRepository:
return SQLAlchemyAssetRepository(session)
def get_asset_library_repository(session: Session = Depends(get_db_session)) -> SQLAlchemyAssetLibraryRepository:
return SQLAlchemyAssetLibraryRepository(session)
def get_ingest_job_repository(session: Session = Depends(get_db_session)) -> SQLAlchemyIngestJobRepository:
return SQLAlchemyIngestJobRepository(session)
def get_classification_job_repository(session: Session = Depends(get_db_session)) -> SQLAlchemyClassificationJobRepository:
return SQLAlchemyClassificationJobRepository(session)
def get_project_repository(session: Session = Depends(get_db_session)) -> SQLAlchemyProjectRepository:
return SQLAlchemyProjectRepository(session)