routers.categories

Endpoint for categories.

 1"""Endpoint for categories."""
 2
 3from fastapi import APIRouter, HTTPException, status
 4from internal.database.dependency import database_dependency
 5from internal.queries.category import AsyncQuerier as CategoriesQuerier
 6from internal.queries.models import Category
 7
 8router = APIRouter(prefix="/categories", tags=["categories"])
 9
10
11@router.get(
12    "/",
13    status_code=status.HTTP_200_OK,
14    summary="Get all categories",
15    description="Retrieves a list of all defined bundle categories.",
16)
17async def get_categories(conn: database_dependency) -> list[Category]:
18    """Get all categories.
19
20    Returns:
21        all categories
22
23    Raises:
24        HTTPException: if failed to get categories
25    """
26    categories = [item async for item in CategoriesQuerier(conn).get_categories()]
27    if categories is None:
28        raise HTTPException(
29            status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
30            detail="Failed to get categories",
31        )
32    return list(categories)
router = <fastapi.routing.APIRouter object>
@router.get('/', status_code=status.HTTP_200_OK, summary='Get all categories', description='Retrieves a list of all defined bundle categories.')
async def get_categories( conn: Annotated[sqlalchemy.ext.asyncio.engine.AsyncConnection, Depends(dependency=<bound method DatabaseManager.get_connection of <internal.database.manager.DatabaseManager object>>, use_cache=True, scope=None)]) -> list[internal.queries.models.Category]:
12@router.get(
13    "/",
14    status_code=status.HTTP_200_OK,
15    summary="Get all categories",
16    description="Retrieves a list of all defined bundle categories.",
17)
18async def get_categories(conn: database_dependency) -> list[Category]:
19    """Get all categories.
20
21    Returns:
22        all categories
23
24    Raises:
25        HTTPException: if failed to get categories
26    """
27    categories = [item async for item in CategoriesQuerier(conn).get_categories()]
28    if categories is None:
29        raise HTTPException(
30            status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
31            detail="Failed to get categories",
32        )
33    return list(categories)

Get all categories.

Returns:

all categories

Raises:
  • HTTPException: if failed to get categories