File size: 584 Bytes
777d84a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from fastapi import APIRouter
from fastapi import Query

from core.trie_store import (
    trie,
    handle_frequency
)

router = APIRouter(
    prefix="/suggest",
    tags=["Suggestions"]
)


@router.get("/")
async def suggest_handles(
    prefix: str = Query(..., min_length=1)
):

    matches = trie.search_prefix(
        prefix=prefix,
        limit=50
    )

    matches.sort(
        key=lambda handle: handle_frequency.get(
            handle,
            0
        ),
        reverse=True
    )

    return {
        "prefix": prefix,
        "suggestions": matches[:5]
    }