API_logistics/app/infrastructure/fastapi/total_order_routes.py
2024-10-04 15:36:34 +05:00

50 lines
1.9 KiB
Python

from typing import List
from fastapi import APIRouter, HTTPException, Depends
from sqlalchemy.orm import Session
from app.infrastructure.database.dependencies import get_db
from app.core.entities.total_order import TotalOrderEntity
from app.core.usecases.total_order_service import TotalOrdersService
router = APIRouter()
@router.get("/total-orders", response_model=List[TotalOrderEntity])
def read_total_orders(db: Session = Depends(get_db)):
service = TotalOrdersService(db)
return service.get_all_total_orders()
@router.get("/total-orders/{total_order_id}", response_model=TotalOrderEntity)
def read_total_order(total_order_id: int, db: Session = Depends(get_db)):
service = TotalOrdersService(db)
total_order = service.get_total_order_by_id(total_order_id)
if total_order is None:
raise HTTPException(status_code=404, detail="Total order not found")
return total_order
@router.post("/total-orders", response_model=TotalOrderEntity)
def create_total_order(total_order: TotalOrderEntity, db: Session = Depends(get_db)):
service = TotalOrdersService(db)
return service.create_total_order(total_order)
@router.put("/total-orders/{total_order_id}", response_model=TotalOrderEntity)
def update_total_order(total_order_id: int, total_order: TotalOrderEntity, db: Session = Depends(get_db)):
service = TotalOrdersService(db)
updated_total_order = service.update_total_order(total_order_id, total_order)
if updated_total_order is None:
raise HTTPException(status_code=404, detail="Total order not found")
return updated_total_order
@router.delete("/total-orders/{total_order_id}", response_model=bool)
def delete_total_order(total_order_id: int, db: Session = Depends(get_db)):
service = TotalOrdersService(db)
success = service.delete_total_order(total_order_id)
if not success:
raise HTTPException(status_code=404, detail="Total order not found")
return success