From 0c90c12c948ef8855aece9712c05516ae8819d1c Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 2 Nov 2023 09:34:02 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=8D=20refactor(store.py):=20add=20supp?= =?UTF-8?q?ort=20for=20filtering=20components=20based=20on=20is=5Fcomponen?= =?UTF-8?q?t=20flag=20in=20list=5Fcomponents=20function=20=F0=9F=94=8D=20r?= =?UTF-8?q?efactor(service.py):=20add=20support=20for=20filtering=20compon?= =?UTF-8?q?ents=20based=20on=20is=5Fcomponent=20flag=20in=20get=5Fcomponen?= =?UTF-8?q?ts=20function?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/api/v1/store.py | 2 ++ src/backend/langflow/services/store/service.py | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/backend/langflow/api/v1/store.py b/src/backend/langflow/api/v1/store.py index 089971844..9800bdbbd 100644 --- a/src/backend/langflow/api/v1/store.py +++ b/src/backend/langflow/api/v1/store.py @@ -75,6 +75,7 @@ def list_components( filter_by_user: bool = Query(False), page: int = 1, limit: int = 10, + is_component: Optional[bool] = Query(None), store_service: StoreService = Depends(get_store_service), store_api_Key: Optional[str] = Depends(get_optional_user_store_api_key), ): @@ -85,6 +86,7 @@ def list_components( page=page, limit=limit, filter_by_user=filter_by_user, + is_component=is_component, ) if not store_api_Key: diff --git a/src/backend/langflow/services/store/service.py b/src/backend/langflow/services/store/service.py index 2305740de..1f0f43365 100644 --- a/src/backend/langflow/services/store/service.py +++ b/src/backend/langflow/services/store/service.py @@ -188,15 +188,18 @@ class StoreService(Service): page: int = 1, limit: int = 15, fields: Optional[List[str]] = None, + is_component: Optional[bool] = None, filter_by_user: bool = False, ) -> Union[List[ListComponentResponse], List[Dict[str, int]]]: params = {"page": page, "limit": limit} # ?aggregate[count]=likes params["fields"] = ",".join(fields) if fields else ",".join(self.default_fields) + if is_component: + params["filter[is_component][_eq]"] = is_component + # Only public components or the ones created by the user # check for "public" or "Public" - if filter_by_user and not api_key: raise ValueError("No API key provided")