munch-ease-backend/api/persons.py

31 lines
1.3 KiB
Python
Raw Normal View History

2025-10-18 05:50:43 +00:00
from __future__ import annotations
from typing import List, Optional
import aiosqlite
from fastapi import APIRouter, Depends, Query, Request
import persons
from common import Page, ProblemDetails
from main import get_db # temporary during extraction
router = APIRouter(prefix="/persons", tags=["persons"])
@router.get("", response_model=Page[persons.Person], operation_id="listPersons", summary="List persons (paginated)")
async def list_persons(
q: Optional[str] = Query(default=None, description="Optional case-insensitive name filter (applied after page read; may be pushed to SQL in the future)."),
cursor: Optional[str] = Query(default=None, description="Opaque cursor for pagination. Pass the value returned in nextCursor to fetch the next page."),
limit: int = Query(50, ge=1, le=200, description="Maximum number of items to return (1-200)."),
conn: aiosqlite.Connection = Depends(get_db),
request: Request | None = None,
) -> Page[persons.Person]:
raise NotImplementedError("list_persons extraction pending")
@router.post("", response_model=persons.Person, operation_id="createPerson", summary="Create a person")
async def create_person(
person: persons.Person, conn: aiosqlite.Connection = Depends(get_db)
) -> persons.Person:
raise NotImplementedError("create_person extraction pending")