34 lines
991 B
Python
34 lines
991 B
Python
"""REST API – /me (fáze bez auth)."""
|
||
|
||
from __future__ import annotations
|
||
|
||
from typing import Annotated, Any
|
||
|
||
import asyncpg
|
||
from fastapi import APIRouter, Depends
|
||
|
||
from app.db_json import record_to_dict
|
||
from app.deps import get_pg_pool
|
||
|
||
router = APIRouter(prefix="/api/v1/me", tags=["me"])
|
||
|
||
|
||
@router.get(
|
||
"/sites",
|
||
summary="Lokality přihlášeného uživatele (fáze bez auth)",
|
||
description="Aktuálně vrací všechny aktivní lokality z vw_site_directory; po zavedení autentizace se odfiltruje podle oprávnění.",
|
||
)
|
||
async def list_my_sites(
|
||
db: Annotated[asyncpg.Pool, Depends(get_pg_pool)],
|
||
) -> list[dict[str, Any]]:
|
||
async with db.acquire() as conn:
|
||
rows = await conn.fetch(
|
||
"""
|
||
SELECT id, code, name, timezone, latitude, longitude, active, notes, created_at
|
||
FROM ems.vw_site_directory
|
||
WHERE active = true
|
||
ORDER BY code
|
||
"""
|
||
)
|
||
return [record_to_dict(r) for r in rows]
|