From 0cd1fcdcbdacf4462b7a161d22bdce64199b50f0 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Mon, 13 Nov 2023 18:04:48 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20fix(store.py):=20add=20type=20hi?= =?UTF-8?q?nts=20to=20improve=20code=20readability=20and=20maintainability?= =?UTF-8?q?=20=F0=9F=9A=80=20feat(store.py):=20add=20support=20for=20pagin?= =?UTF-8?q?ation=20in=20get=5Fcomponents=20endpoint=20to=20limit=20the=20n?= =?UTF-8?q?umber=20of=20results=20returned=20=F0=9F=94=A7=20fix(store.py):?= =?UTF-8?q?=20fix=20count=5Fcomponents=20endpoint=20to=20handle=20cases=20?= =?UTF-8?q?where=20the=20number=20of=20results=20is=20less=20than=20the=20?= =?UTF-8?q?limit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/api/v1/store.py | 45 ++++++++++------------------ 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/src/backend/langflow/api/v1/store.py b/src/backend/langflow/api/v1/store.py index 6bbe00705..ea508aa51 100644 --- a/src/backend/langflow/api/v1/store.py +++ b/src/backend/langflow/api/v1/store.py @@ -1,5 +1,5 @@ from datetime import datetime -from typing import Any, Dict, List, Optional +from typing import Annotated, Any, Dict, List, Optional, Union from uuid import UUID from fastapi import APIRouter, Depends, HTTPException, Query @@ -77,12 +77,12 @@ def create_component( @router.get("/components/", response_model=ListComponentResponseModel) def get_components( - search: Optional[str] = Query(None), - status: Optional[str] = Query(None), - is_component: Optional[bool] = Query(None), - tags: Optional[List[str]] = Query(None), - sort: Optional[List[str]] = Query(None), - filter_by_user: bool = Query(False), + search: Annotated[Optional[str], Query()] = None, + status: Annotated[Optional[str], Query()] = None, + is_component: Annotated[Optional[bool], Query()] = None, + tags: Annotated[Optional[list[str]], Query()] = None, + sort: Annotated[Union[list[str], None], Query()] = None, + filter_by_user: Annotated[bool, Query()] = False, page: int = 1, limit: int = 10, store_service: StoreService = Depends(get_store_service), @@ -112,11 +112,14 @@ def get_components( ) try: if result: - comp_count = store_service.count_components( - api_key=store_api_Key, - filter_by_user=filter_by_user, - filter_conditions=filter_conditions, - ) + if len(result) >= limit: + comp_count = store_service.count_components( + api_key=store_api_Key, + filter_by_user=filter_by_user, + filter_conditions=filter_conditions, + ) + else: + comp_count = len(result) else: comp_count = 0 except HTTPStatusError as exc: @@ -150,24 +153,6 @@ def get_components( raise HTTPException(status_code=500, detail=str(exc)) -@router.get("/components/count", response_model=dict) -def count_components( - filter_by_user: bool = Query(False), - store_service: StoreService = Depends(get_store_service), - store_api_Key: str = Depends(get_optional_user_store_api_key), - is_component: Optional[bool] = Query(None), -): - try: - result = store_service.count_components( - api_key=store_api_Key, - filter_by_user=filter_by_user, - is_component=is_component, - ) - return {"count": result} - except Exception as exc: - raise HTTPException(status_code=400, detail=str(exc)) - - @router.get("/components/{component_id}", response_model=DownloadComponentResponse) def read_component( component_id: UUID,