Implement FastAPI Temporal MVP pipeline
This commit is contained in:
32
app/api/routers/orders.py
Normal file
32
app/api/routers/orders.py
Normal file
@@ -0,0 +1,32 @@
|
||||
"""Order routes."""
|
||||
|
||||
from fastapi import APIRouter, Depends, status
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.api.schemas.order import CreateOrderRequest, CreateOrderResponse, OrderDetailResponse
|
||||
from app.application.services.order_service import OrderService
|
||||
from app.infra.db.session import get_db_session
|
||||
|
||||
router = APIRouter(prefix="/orders", tags=["orders"])
|
||||
order_service = OrderService()
|
||||
|
||||
|
||||
@router.post("", response_model=CreateOrderResponse, status_code=status.HTTP_201_CREATED)
|
||||
async def create_order(
|
||||
payload: CreateOrderRequest,
|
||||
session: AsyncSession = Depends(get_db_session),
|
||||
) -> CreateOrderResponse:
|
||||
"""Create a new image pipeline order."""
|
||||
|
||||
return await order_service.create_order(session, payload)
|
||||
|
||||
|
||||
@router.get("/{order_id}", response_model=OrderDetailResponse)
|
||||
async def get_order(
|
||||
order_id: int,
|
||||
session: AsyncSession = Depends(get_db_session),
|
||||
) -> OrderDetailResponse:
|
||||
"""Fetch order details."""
|
||||
|
||||
return await order_service.get_order(session, order_id)
|
||||
|
||||
Reference in New Issue
Block a user