Skip to content

Commit eabe98c

Browse files
forgot model info routes
1 parent 6230761 commit eabe98c

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

backend/api/model_infos_routes.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Philippe Stepniewski
2+
import inspect
3+
4+
from fastapi import APIRouter, Depends, Request
5+
from fastapi.responses import JSONResponse
6+
7+
from backend.domain.ports.model_info_db_handler import ModelInfoDbHandler
8+
from backend.domain.ports.user_handler import UserHandler
9+
from backend.domain.use_cases.auth_usecases import get_current_user, get_user_adapter
10+
from backend.domain.use_cases.model_info_usecases import search_model_infos
11+
from backend.domain.use_cases.user_usecases import user_can_perform_action_for_project
12+
13+
router = APIRouter()
14+
15+
16+
def get_model_info_db_handler(request: Request) -> ModelInfoDbHandler:
17+
return request.app.state.model_info_db_handler
18+
19+
20+
@router.get("/search")
21+
def search(
22+
query: str,
23+
project_name: str | None = None,
24+
model_info_db_handler: ModelInfoDbHandler = Depends(get_model_info_db_handler),
25+
current_user: dict = Depends(get_current_user),
26+
user_adapter: UserHandler = Depends(get_user_adapter),
27+
) -> JSONResponse:
28+
if project_name is not None:
29+
user_can_perform_action_for_project(
30+
current_user,
31+
project_name=project_name,
32+
action_name=inspect.currentframe().f_code.co_name,
33+
user_adapter=user_adapter,
34+
)
35+
results = search_model_infos(query=query, model_info_db_handler=model_info_db_handler, project_name=project_name)
36+
return JSONResponse(content=[m.to_json() for m in results])

0 commit comments

Comments
 (0)