From c91d89380ad6d921f8ed9153e412fad97d07826b Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 16 Nov 2023 11:26:59 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(store.py):=20remove=20unnece?= =?UTF-8?q?ssary=20code=20that=20checks=20for=20liked=20and=20store=5Fapi?= =?UTF-8?q?=5FKey=20variables=20=F0=9F=90=9B=20fix(service.py):=20remove?= =?UTF-8?q?=20unnecessary=20import=20statement=20for=20logger=20=E2=9C=A8?= =?UTF-8?q?=20feat(store.py):=20add=20support=20for=20filtering=20componen?= =?UTF-8?q?ts=20by=20liked=20status=20and=20store=20API=20key=20=E2=9C=A8?= =?UTF-8?q?=20feat(service.py):=20add=20build=5Fliked=5Ffilter=20method=20?= =?UTF-8?q?to=20build=20filter=20conditions=20based=20on=20liked=20status?= =?UTF-8?q?=20and=20store=20API=20key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/api/v1/store.py | 6 ------ src/backend/langflow/services/store/service.py | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/backend/langflow/api/v1/store.py b/src/backend/langflow/api/v1/store.py index fa5f92d63..23438e36d 100644 --- a/src/backend/langflow/api/v1/store.py +++ b/src/backend/langflow/api/v1/store.py @@ -4,7 +4,6 @@ from uuid import UUID from fastapi import APIRouter, Depends, HTTPException, Query from httpx import HTTPStatusError - from langflow.services.auth import utils as auth_utils from langflow.services.database.models.user.user import User from langflow.services.deps import get_settings_service, get_store_service @@ -118,11 +117,6 @@ async def get_components( is_component=is_component, filter_by_user=filter_by_user, ) - if liked and store_api_Key: - liked_filter = store_service.build_liked_filter(liked, store_api_Key) - filter_conditions.append(liked_filter) - elif liked and not store_api_Key: - raise ValueError("You must provide an API key to filter by likes") result: List[ListComponentResponse] = [] authorized = False diff --git a/src/backend/langflow/services/store/service.py b/src/backend/langflow/services/store/service.py index 442e3722d..e93cd7400 100644 --- a/src/backend/langflow/services/store/service.py +++ b/src/backend/langflow/services/store/service.py @@ -4,6 +4,8 @@ from uuid import UUID import httpx from httpx import HTTPError, HTTPStatusError +from loguru import logger + from langflow.services.base import Service from langflow.services.store.schema import ( CreateComponentResponse, @@ -12,7 +14,6 @@ from langflow.services.store.schema import ( StoreComponentCreate, ) from langflow.services.store.utils import process_tags_for_post -from loguru import logger if TYPE_CHECKING: from langflow.services.settings.service import SettingsService @@ -141,6 +142,8 @@ class StoreService(Service): tags: Optional[List[str]] = None, is_component: Optional[bool] = None, filter_by_user: Optional[bool] = False, + liked: Optional[bool] = False, + store_api_Key: Optional[str] = None, ): filter_conditions = [] @@ -157,13 +160,18 @@ class StoreService(Service): if is_component is not None: filter_conditions.append({"is_component": {"_eq": is_component}}) - - if filter_by_user: + if liked and store_api_Key: + liked_filter = self.build_liked_filter(liked, store_api_Key) + filter_conditions.append(liked_filter) + elif liked and not store_api_Key: + raise ValueError("You must provide an API key to filter by likes") + if filter_by_user and store_api_Key: user_data = user_data_var.get() if not user_data: raise ValueError("No user data") filter_conditions.append({"user_created": {"_eq": user_data["id"]}}) - + elif filter_by_user and not store_api_Key: + raise ValueError("You must provide an API key to filter your components") return filter_conditions def build_liked_filter(self, liked: bool, api_key: Optional[str] = None):