18 lines
525 B
Python
18 lines
525 B
Python
from typing import Annotated
|
|
|
|
import asyncpg
|
|
from dishka.integrations.fastapi import DishkaRoute, FromDishka
|
|
from fastapi import APIRouter, Query
|
|
|
|
from utils.search.models import SearchFilters, SearchHit
|
|
from utils.search.repository import search_messages
|
|
|
|
router = APIRouter(prefix="/api/search", tags=["search"], route_class=DishkaRoute)
|
|
|
|
|
|
@router.get("")
|
|
async def search(
|
|
pool: FromDishka[asyncpg.Pool], filters: Annotated[SearchFilters, Query()]
|
|
) -> list[SearchHit]:
|
|
return await search_messages(pool, filters)
|