🐛 fix(service.py): improve error handling in StoreService search method

✨ feat(service.py): change default sort parameter in StoreService search method to sort by likes in descending order
This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-10-20 11:02:38 -03:00
commit b7aa3274f8

View file

@ -31,10 +31,14 @@ class StoreService(Service):
headers = {} headers = {}
try: try:
response = httpx.get(url, headers=headers, params=params) response = httpx.get(url, headers=headers, params=params)
response_text = response.text
response.raise_for_status() response.raise_for_status()
return response.json()["data"] return response.json()["data"]
except HTTPError: except HTTPError as exc:
raise ValueError(response.text) try:
raise ValueError(response_text) from exc
except ValueError:
raise ValueError(f"GET request failed: {exc}") from exc
def search( def search(
self, self,
@ -46,15 +50,20 @@ class StoreService(Service):
tags: Optional[List[str]] = None, tags: Optional[List[str]] = None,
date_from: Optional[datetime] = None, date_from: Optional[datetime] = None,
date_to: Optional[datetime] = None, date_to: Optional[datetime] = None,
sort_by: Optional[str] = "likes", sort: Optional[List[str]] = ["-likes"],
sort: Optional[List[str]] = None,
fields: Optional[List[str]] = None, fields: Optional[List[str]] = None,
) -> List[ComponentResponse]: ) -> List[ComponentResponse]:
# ?sort=sort,-date_created,author.name
# // or
# ?sort[]=sort
# &sort[]=-date_created
# &sort[]=-author.name
params = { params = {
"search": query, "search": query,
"page": page, "page": page,
"limit": limit, "limit": limit,
"sort": sort_by,
} }
if status: if status: