giga_tcg/dependencies.py
2025-01-31 13:05:48 -05:00

46 lines
1.3 KiB
Python

from sqlalchemy.orm import Session
from services.data import DataService
from services.upload import UploadService
from services.box import BoxService
from services.tcgplayer import TCGPlayerService
from services.pricing import PricingService
from fastapi import Depends
from db.database import get_db
## Upload
def get_upload_service(db: Session = Depends(get_db)) -> UploadService:
"""Dependency injection for UploadService"""
return UploadService(db)
## box
def get_box_service(db: Session = Depends(get_db)) -> BoxService:
"""Dependency injection for BoxService"""
return BoxService(db)
## Pricing
def get_pricing_service(db: Session = Depends(get_db)) -> PricingService:
"""Dependency injection for PricingService"""
return PricingService(db)
## tcgplayer
def get_tcgplayer_service(
db: Session = Depends(get_db),
pricing_service: PricingService = Depends(get_pricing_service)
) -> TCGPlayerService:
"""Dependency injection for TCGPlayerService"""
return TCGPlayerService(db, pricing_service)
## Data
def get_data_service(
db: Session = Depends(get_db),
tcgplayer_service: TCGPlayerService = Depends(get_tcgplayer_service)
) -> DataService:
"""Dependency injection for DataService"""
return DataService(db, tcgplayer_service)