From 785e8a6436f76e69c49d5893ca94a93636e44e6e Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Wed, 25 Oct 2023 22:23:13 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20fix(store.py):=20add=20count=5Fc?= =?UTF-8?q?omponents=20endpoint=20to=20retrieve=20the=20count=20of=20compo?= =?UTF-8?q?nents=20in=20the=20store=20=F0=9F=94=A7=20fix(service.py):=20mo?= =?UTF-8?q?dify=20count=5Fcomponents=20method=20to=20make=20api=5Fkey=20op?= =?UTF-8?q?tional=20and=20add=20filter=5Fby=5Fuser=20parameter=20to=20filt?= =?UTF-8?q?er=20components=20by=20user?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/api/v1/store.py | 15 +++++++++++++++ src/backend/langflow/services/store/service.py | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/backend/langflow/api/v1/store.py b/src/backend/langflow/api/v1/store.py index f2106c51c..59a88153d 100644 --- a/src/backend/langflow/api/v1/store.py +++ b/src/backend/langflow/api/v1/store.py @@ -78,6 +78,21 @@ def list_components( raise HTTPException(status_code=400, 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), +): + try: + result = store_service.count_components( + api_key=store_api_Key, filter_by_user=filter_by_user + ) + 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, diff --git a/src/backend/langflow/services/store/service.py b/src/backend/langflow/services/store/service.py index 014012462..06d3deea9 100644 --- a/src/backend/langflow/services/store/service.py +++ b/src/backend/langflow/services/store/service.py @@ -121,7 +121,7 @@ class StoreService(Service): def count_components( self, - api_key: str, + api_key: Optional[str] = None, filter_by_user: bool = False, ) -> int: params = {"aggregate": json.dumps({"count": "*"})}