🔧 fix(store.py): add support for filtering components based on is_component parameter in count_components function

🔧 fix(service.py): add support for filtering components based on is_component parameter in StoreService.count_components method
This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-11-02 09:37:41 -03:00
commit 7ca750bbde
2 changed files with 8 additions and 1 deletions

View file

@ -107,10 +107,13 @@ def count_components(
filter_by_user: bool = Query(False), filter_by_user: bool = Query(False),
store_service: StoreService = Depends(get_store_service), store_service: StoreService = Depends(get_store_service),
store_api_Key: str = Depends(get_optional_user_store_api_key), store_api_Key: str = Depends(get_optional_user_store_api_key),
is_component: Optional[bool] = Query(None),
): ):
try: try:
result = store_service.count_components( result = store_service.count_components(
api_key=store_api_Key, filter_by_user=filter_by_user api_key=store_api_Key,
filter_by_user=filter_by_user,
is_component=is_component,
) )
return {"count": result} return {"count": result}
except Exception as exc: except Exception as exc:

View file

@ -167,6 +167,7 @@ class StoreService(Service):
self, self,
api_key: Optional[str] = None, api_key: Optional[str] = None,
filter_by_user: bool = False, filter_by_user: bool = False,
is_component: Optional[bool] = None,
) -> int: ) -> int:
params = {"aggregate": json.dumps({"count": "*"})} params = {"aggregate": json.dumps({"count": "*"})}
if filter_by_user: if filter_by_user:
@ -179,6 +180,9 @@ class StoreService(Service):
) )
else: else:
params["filter"] = json.dumps({"status": {"_in": ["public", "Public"]}}) params["filter"] = json.dumps({"status": {"_in": ["public", "Public"]}})
if is_component:
params["filter[is_component][_eq]"] = is_component
results = self._get(self.components_url, api_key, params) results = self._get(self.components_url, api_key, params)
return results[0].get("count", 0) return results[0].get("count", 0)