| 1234567891011121314151617 |
- from fastapi import APIRouter, Depends
- from sqlalchemy import select
- from sqlalchemy.ext.asyncio import AsyncSession
- from ..database import get_db
- from ..models import Category
- from ..schemas import CategoryListResponse, CategoryOut
- router = APIRouter(prefix="/api/v1", tags=["Categories"])
- @router.get("/categories", response_model=CategoryListResponse)
- async def list_categories(db: AsyncSession = Depends(get_db)) -> CategoryListResponse:
- stmt = select(Category).order_by(Category.sort_order.asc(), Category.name.asc())
- result = await db.execute(stmt)
- categories = result.scalars().all()
- return CategoryListResponse(items=[CategoryOut.model_validate(c) for c in categories])
|