24 lines
766 B
Python
24 lines
766 B
Python
from fastapi import APIRouter, Depends, Query
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from app.db import get_session
|
|
from app.services.catalog import CatalogService
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/institutions")
|
|
async def institutions(
|
|
topic: str | None = None,
|
|
source_tier: str | None = None,
|
|
page_size: int = Query(20, ge=1, le=50),
|
|
session: AsyncSession = Depends(get_session),
|
|
) -> dict:
|
|
return await CatalogService(session).institutions(topic=topic, source_tier=source_tier, page_size=page_size)
|
|
|
|
|
|
@router.get("/institutions/{institution_id}")
|
|
async def institution_detail(institution_id: str, session: AsyncSession = Depends(get_session)) -> dict:
|
|
return await CatalogService(session).institution_detail(institution_id)
|
|
|