25 lines
959 B
Python
25 lines
959 B
Python
from fastapi import APIRouter, Request, Response
|
|
|
|
from app.deps import SessionDep, ensure_web_session, web_owner
|
|
from app.schemas import OrderCreate, OrderOut
|
|
from app.services import checkout, get_order
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post("/orders", response_model=OrderOut)
|
|
async def create_order(body: OrderCreate, request: Request, response: Response, db: SessionDep) -> OrderOut:
|
|
session_id = await ensure_web_session(request, response, db)
|
|
return await checkout(
|
|
db,
|
|
owner_key=web_owner(session_id),
|
|
customer_name=body.customer_name,
|
|
customer_phone=body.customer_phone,
|
|
)
|
|
|
|
|
|
@router.get("/orders/{order_id}", response_model=OrderOut)
|
|
async def read_order(order_id: int, request: Request, response: Response, db: SessionDep) -> OrderOut:
|
|
session_id = await ensure_web_session(request, response, db)
|
|
return await get_order(db, owner_key=web_owner(session_id), order_id=order_id)
|