Desk-Back2 / app /routes /orders.py
Fred808's picture
Upload 77 files
5111c4b verified
from fastapi import APIRouter, Depends, HTTPException
from typing import List
from ..models.orders import Order, OrderDetails, OrderStats
from ..core.auth import get_current_user
from ..services.order_service import OrderService
router = APIRouter(prefix="/api/orders", tags=["orders"])
@router.get("", response_model=List[Order])
async def get_orders(
current_user = Depends(get_current_user),
order_service: OrderService = Depends()
):
return await order_service.get_orders()
@router.post("", response_model=Order)
async def create_order(
order: Order,
current_user = Depends(get_current_user),
order_service: OrderService = Depends()
):
return await order_service.create_order(order)
@router.get("/{order_id}", response_model=OrderDetails)
async def get_order(
order_id: int,
current_user = Depends(get_current_user),
order_service: OrderService = Depends()
):
order = await order_service.get_order(order_id)
if not order:
raise HTTPException(status_code=404, detail="Order not found")
return order
@router.put("/{order_id}", response_model=Order)
async def update_order(
order_id: int,
order: Order,
current_user = Depends(get_current_user),
order_service: OrderService = Depends()
):
updated_order = await order_service.update_order(order_id, order)
if not updated_order:
raise HTTPException(status_code=404, detail="Order not found")
return updated_order
@router.delete("/{order_id}")
async def delete_order(
order_id: int,
current_user = Depends(get_current_user),
order_service: OrderService = Depends()
):
success = await order_service.delete_order(order_id)
if not success:
raise HTTPException(status_code=404, detail="Order not found")
return {"message": "Order deleted successfully"}
@router.get("/stats", response_model=OrderStats)
async def get_order_stats(
current_user = Depends(get_current_user),
order_service: OrderService = Depends()
):
return await order_service.get_stats()