114 lines
4.2 KiB
Python
114 lines
4.2 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 services.storage import StorageService
|
|
from fastapi import Depends, Form
|
|
from db.database import get_db
|
|
from schemas.file import CreateFileRequest
|
|
from schemas.box import CreateBoxRequest, UpdateBoxRequest, CreateOpenBoxRequest
|
|
|
|
|
|
## 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_box_data(
|
|
type: str = Form(...),
|
|
sku: str = Form(None),
|
|
set_code: str = Form(...),
|
|
num_cards_expected: int = Form(None)
|
|
) -> CreateBoxRequest:
|
|
"""Dependency injection for BoxData"""
|
|
return CreateBoxRequest(type=type, sku=sku, set_code=set_code, num_cards_expected=num_cards_expected)
|
|
|
|
def get_box_update_data(
|
|
type: str = Form(None),
|
|
sku: str = Form(None),
|
|
set_code: str = Form(None),
|
|
num_cards_expected: int = Form(None)
|
|
) -> UpdateBoxRequest:
|
|
"""Dependency injection for BoxUpdateData"""
|
|
return UpdateBoxRequest(type=type, sku=sku, set_code=set_code, num_cards_expected=num_cards_expected)
|
|
|
|
def get_open_box_data(
|
|
product_id: str = Form(...),
|
|
file_ids: list[str] = Form(None),
|
|
num_cards_actual: int = Form(None),
|
|
date_opened: str = Form(None)
|
|
) -> CreateOpenBoxRequest:
|
|
"""Dependency injection for OpenBoxData"""
|
|
return CreateOpenBoxRequest(product_id=product_id, file_ids=file_ids, num_cards_actual=num_cards_actual, date_opened=date_opened)
|
|
|
|
def get_tcgplayer_service(
|
|
db: Session = Depends(get_db)
|
|
) -> TCGPlayerService:
|
|
"""Dependency injection for TCGPlayerService"""
|
|
return TCGPlayerService(db)
|
|
|
|
# storage
|
|
|
|
def get_storage_service(db: Session = Depends(get_db)) -> StorageService:
|
|
"""Dependency injection for StorageService"""
|
|
return StorageService(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), storage_service: StorageService = Depends(get_storage_service)) -> ProductService:
|
|
"""Dependency injection for ProductService"""
|
|
return ProductService(db, file_service, tcgplayer_service, storage_service)
|
|
|
|
# task
|
|
def get_task_service(db: Session = Depends(get_db), product_service: ProductService = Depends(get_product_service), tcgplayer_service: TCGPlayerService = Depends(get_tcgplayer_service)) -> TaskService:
|
|
"""Dependency injection for TaskService"""
|
|
return TaskService(db, product_service, tcgplayer_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)
|
|
|