79 lines
2.7 KiB
Python
79 lines
2.7 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 services.file import FileService
|
|
from services.product import ProductService
|
|
from services.inventory import InventoryService
|
|
from services.task import TaskService
|
|
from fastapi import Depends, Form
|
|
from db.database import get_db
|
|
from schemas.file import CreateFileRequest
|
|
|
|
|
|
## file
|
|
# file
|
|
def get_file_service(db: Session = Depends(get_db)) -> FileService:
|
|
"""Dependency injection for FileService"""
|
|
return FileService(db)
|
|
|
|
# metadata
|
|
def get_create_file_metadata(
|
|
type: str = Form(...),
|
|
source: str = Form(...),
|
|
service: str = Form(None),
|
|
filename: str = Form(None)
|
|
) -> CreateFileRequest:
|
|
"""Dependency injection for FileMetadata"""
|
|
return CreateFileRequest(type=type, source=source, service=service, filename=filename)
|
|
|
|
def get_tcgplayer_service(
|
|
db: Session = Depends(get_db)
|
|
) -> TCGPlayerService:
|
|
"""Dependency injection for TCGPlayerService"""
|
|
return TCGPlayerService(db)
|
|
|
|
# product
|
|
def get_product_service(db: Session = Depends(get_db), file_service: FileService = Depends(get_file_service), tcgplayer_service: TCGPlayerService = Depends(get_tcgplayer_service)) -> ProductService:
|
|
"""Dependency injection for ProductService"""
|
|
return ProductService(db, file_service, tcgplayer_service)
|
|
|
|
# task
|
|
def get_task_service(db: Session = Depends(get_db), product_service: ProductService = Depends(get_product_service)) -> TaskService:
|
|
"""Dependency injection for TaskService"""
|
|
return TaskService(db, product_service)
|
|
|
|
## Inventory
|
|
def get_inventory_service(db: Session = Depends(get_db)) -> InventoryService:
|
|
"""Dependency injection for InventoryService"""
|
|
return InventoryService(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), inventory_service: InventoryService = Depends(get_inventory_service)) -> BoxService:
|
|
"""Dependency injection for BoxService"""
|
|
return BoxService(db, inventory_service)
|
|
|
|
## Pricing
|
|
|
|
def get_pricing_service(db: Session = Depends(get_db)) -> PricingService:
|
|
"""Dependency injection for PricingService"""
|
|
return PricingService(db)
|
|
|
|
## 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)
|
|
|