fooder-api/fooder/view/preset.py

38 lines
972 B
Python
Raw Permalink Normal View History

2023-10-27 15:12:48 +02:00
from fastapi import APIRouter, Depends, Request
2024-08-04 16:17:16 +02:00
from ..controller.preset import DeletePreset, GetPreset, ListPresets
from ..model.preset import ListPresetsPayload, PresetDetails
2023-10-27 15:12:48 +02:00
router = APIRouter(tags=["preset"])
@router.get("", response_model=ListPresetsPayload)
async def list_presets(
request: Request,
limit: int = 10,
offset: int = 0,
q: str | None = None,
controller: ListPresets = Depends(ListPresets),
):
return ListPresetsPayload(
presets=[p async for p in controller.call(limit=limit, offset=offset, q=q)]
)
2023-10-27 16:49:19 +02:00
@router.get("/{preset_id}", response_model=PresetDetails)
async def get_preset(
request: Request,
preset_id: int,
controller: GetPreset = Depends(GetPreset),
):
return await controller.call(preset_id)
@router.delete("/{preset_id}")
async def delete_preset(
request: Request,
preset_id: int,
controller: DeletePreset = Depends(DeletePreset),
):
await controller.call(preset_id)