routers.allergens

Endpoint for allergens.

 1"""Endpoint for allergens."""
 2
 3from fastapi import APIRouter, HTTPException, status
 4from internal.database.dependency import database_dependency
 5from internal.queries.allergens import AsyncQuerier as AllergensQuerier
 6from internal.queries.models import Allergen
 7
 8router = APIRouter(prefix="/allergens", tags=["allergens"])
 9
10
11@router.get(
12    "/",
13    status_code=status.HTTP_200_OK,
14    summary="Get all allergens",
15    description="Retrieves a list of all defined allergens.",
16)
17async def get_allergens(conn: database_dependency) -> list[Allergen]:
18    """Get all allergens.
19
20    Returns:
21        all allergens
22
23    Raises:
24        HTTPException: if failed to get allergens
25    """
26    allergens = [item async for item in AllergensQuerier(conn).get_allergens()]
27    if allergens is None:
28        raise HTTPException(
29            status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
30            detail="Failed to get allergens",
31        )
32    return list(allergens)
router = <fastapi.routing.APIRouter object>
@router.get('/', status_code=status.HTTP_200_OK, summary='Get all allergens', description='Retrieves a list of all defined allergens.')
async def get_allergens( 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.Allergen]:
12@router.get(
13    "/",
14    status_code=status.HTTP_200_OK,
15    summary="Get all allergens",
16    description="Retrieves a list of all defined allergens.",
17)
18async def get_allergens(conn: database_dependency) -> list[Allergen]:
19    """Get all allergens.
20
21    Returns:
22        all allergens
23
24    Raises:
25        HTTPException: if failed to get allergens
26    """
27    allergens = [item async for item in AllergensQuerier(conn).get_allergens()]
28    if allergens is None:
29        raise HTTPException(
30            status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
31            detail="Failed to get allergens",
32        )
33    return list(allergens)

Get all allergens.

Returns:

all allergens

Raises:
  • HTTPException: if failed to get allergens