Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| import logging | |
| from fastapi import APIRouter, HTTPException | |
| from src.core.models import Profile | |
| from src.core.profile_store import ProfileStore | |
| logger = logging.getLogger(__name__) | |
| router = APIRouter() | |
| _profile_store: ProfileStore | None = None | |
| def init_profiles(profiles: ProfileStore) -> None: | |
| global _profile_store | |
| _profile_store = profiles | |
| async def get_profile(profile_id: str) -> Profile: | |
| if _profile_store is None: | |
| raise HTTPException(status_code=503, detail="Profile store not initialized") | |
| profile = _profile_store.get(profile_id) | |
| if profile is None: | |
| raise HTTPException(status_code=404, detail=f"Profile not found: {profile_id}") | |
| return profile | |
| async def list_profiles(skip: int = 0, limit: int = 20) -> list[Profile]: | |
| if _profile_store is None: | |
| raise HTTPException(status_code=503, detail="Profile store not initialized") | |
| all_profiles = list(_profile_store.get_all_sample().values()) | |
| return all_profiles[skip : skip + limit] | |