🐛 fix(store.py): add filter_by_user parameter to get_components function to enable filtering components by user
🐛 fix(service.py): add filter_by_user parameter to StoreService's get_components method to enable filtering components by user 🐛 fix(index.ts): add filterByUser parameter to getStoreComponents function to enable filtering components by user
This commit is contained in:
parent
36cb4c31a0
commit
ccd851cad0
3 changed files with 18 additions and 2 deletions
|
|
@ -4,6 +4,7 @@ from uuid import UUID
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, HTTPException, Query
|
from fastapi import APIRouter, Depends, HTTPException, Query
|
||||||
from httpx import HTTPStatusError
|
from httpx import HTTPStatusError
|
||||||
|
|
||||||
from langflow.services.auth import utils as auth_utils
|
from langflow.services.auth import utils as auth_utils
|
||||||
from langflow.services.database.models.user.user import User
|
from langflow.services.database.models.user.user import User
|
||||||
from langflow.services.deps import get_settings_service, get_store_service
|
from langflow.services.deps import get_settings_service, get_store_service
|
||||||
|
|
@ -102,6 +103,7 @@ async def get_components(
|
||||||
tags: Annotated[Optional[list[str]], Query()] = None,
|
tags: Annotated[Optional[list[str]], Query()] = None,
|
||||||
sort: Annotated[Union[list[str], None], Query()] = None,
|
sort: Annotated[Union[list[str], None], Query()] = None,
|
||||||
liked: Annotated[bool, Query()] = False,
|
liked: Annotated[bool, Query()] = False,
|
||||||
|
filter_by_user: Annotated[bool, Query()] = False,
|
||||||
page: int = 1,
|
page: int = 1,
|
||||||
limit: int = 10,
|
limit: int = 10,
|
||||||
store_service: StoreService = Depends(get_store_service),
|
store_service: StoreService = Depends(get_store_service),
|
||||||
|
|
@ -116,6 +118,7 @@ async def get_components(
|
||||||
is_component=is_component,
|
is_component=is_component,
|
||||||
liked=liked,
|
liked=liked,
|
||||||
api_key=store_api_Key,
|
api_key=store_api_Key,
|
||||||
|
filter_by_user=filter_by_user,
|
||||||
)
|
)
|
||||||
result: List[ListComponentResponse] = []
|
result: List[ListComponentResponse] = []
|
||||||
authorized = False
|
authorized = False
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@ from uuid import UUID
|
||||||
|
|
||||||
import httpx
|
import httpx
|
||||||
from httpx import HTTPError, HTTPStatusError
|
from httpx import HTTPError, HTTPStatusError
|
||||||
|
from loguru import logger
|
||||||
|
|
||||||
from langflow.services.base import Service
|
from langflow.services.base import Service
|
||||||
from langflow.services.store.schema import (
|
from langflow.services.store.schema import (
|
||||||
CreateComponentResponse,
|
CreateComponentResponse,
|
||||||
|
|
@ -12,7 +14,6 @@ from langflow.services.store.schema import (
|
||||||
StoreComponentCreate,
|
StoreComponentCreate,
|
||||||
)
|
)
|
||||||
from langflow.services.store.utils import process_tags_for_post
|
from langflow.services.store.utils import process_tags_for_post
|
||||||
from loguru import logger
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from langflow.services.settings.service import SettingsService
|
from langflow.services.settings.service import SettingsService
|
||||||
|
|
@ -140,6 +141,7 @@ class StoreService(Service):
|
||||||
is_component: Optional[bool] = None,
|
is_component: Optional[bool] = None,
|
||||||
liked: bool = False,
|
liked: bool = False,
|
||||||
api_key: Optional[str] = None,
|
api_key: Optional[str] = None,
|
||||||
|
filter_by_user: Optional[bool] = False,
|
||||||
):
|
):
|
||||||
filter_conditions = []
|
filter_conditions = []
|
||||||
|
|
||||||
|
|
@ -157,6 +159,12 @@ class StoreService(Service):
|
||||||
if is_component is not None:
|
if is_component is not None:
|
||||||
filter_conditions.append({"is_component": {"_eq": is_component}})
|
filter_conditions.append({"is_component": {"_eq": is_component}})
|
||||||
|
|
||||||
|
if filter_by_user:
|
||||||
|
user_data = user_data_var.get()
|
||||||
|
if not user_data:
|
||||||
|
raise ValueError("No user data")
|
||||||
|
filter_conditions.append({"user_created": {"_eq": user_data["id"]}})
|
||||||
|
|
||||||
liked_filter = self.build_liked_filter(liked, api_key)
|
liked_filter = self.build_liked_filter(liked, api_key)
|
||||||
filter_conditions.append(liked_filter)
|
filter_conditions.append(liked_filter)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -598,7 +598,8 @@ export async function getStoreComponents(
|
||||||
tags?: string[] | null,
|
tags?: string[] | null,
|
||||||
liked?: boolean | null,
|
liked?: boolean | null,
|
||||||
status?: string | null,
|
status?: string | null,
|
||||||
search?: string | null
|
search?: string | null,
|
||||||
|
filterByUser?: string | null
|
||||||
): Promise<StoreComponentResponse | undefined> {
|
): Promise<StoreComponentResponse | undefined> {
|
||||||
try {
|
try {
|
||||||
let url = `${BASE_URL_API}store/components/`;
|
let url = `${BASE_URL_API}store/components/`;
|
||||||
|
|
@ -623,6 +624,10 @@ export async function getStoreComponents(
|
||||||
queryParams.push(`liked=${liked}`);
|
queryParams.push(`liked=${liked}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (filterByUser !== undefined && filterByUser !== null) {
|
||||||
|
queryParams.push(`filter_by_user=${filterByUser}`);
|
||||||
|
}
|
||||||
|
|
||||||
if (page !== undefined) {
|
if (page !== undefined) {
|
||||||
queryParams.push(`page=${page ?? 1}`);
|
queryParams.push(`page=${page ?? 1}`);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue