Skip to content

Commit 6a8a76a

Browse files
committed
IDEV-2020: Refactor checking limit exceeded and remove feeds product specific conditions in base Results class.
1 parent 3953216 commit 6a8a76a

File tree

2 files changed

+9
-23
lines changed

2 files changed

+9
-23
lines changed

domaintools/base_results.py

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ def __init__(
5353
self._response = None
5454
self._items_list = None
5555
self._data = None
56-
self._limit_exceeded = None
57-
self._limit_exceeded_message = None
5856

5957
def _wait_time(self):
6058
if not self.api.rate_limit or not self.product in self.api.limits:
@@ -142,31 +140,22 @@ def data(self):
142140
if self._data is None:
143141
results = self._get_results()
144142
self.setStatus(results.status_code, results)
145-
if (
146-
self.kwargs.get("format", "json") == "json"
147-
and self.product not in FEEDS_PRODUCTS_LIST # Special handling of feeds products' data to preserve the result in jsonline format
148-
):
143+
if self.kwargs.get("format", "json") == "json":
149144
self._data = results.json()
150145
else:
151146
self._data = results.text
152-
limit_exceeded, message = self.check_limit_exceeded()
153147

154-
if limit_exceeded:
155-
self._limit_exceeded = True
156-
self._limit_exceeded_message = message
148+
self.check_limit_exceeded()
157149

158-
if self._limit_exceeded is True:
159-
raise ServiceException(503, "Limit Exceeded{}".format(self._limit_exceeded_message))
160-
else:
161-
return self._data
150+
return self._data
162151

163152
def check_limit_exceeded(self):
164-
if self.kwargs.get("format", "json") == "json" and self.product not in FEEDS_PRODUCTS_LIST:
165-
if "response" in self._data and "limit_exceeded" in self._data["response"] and self._data["response"]["limit_exceeded"] is True:
166-
return True, self._data["response"]["message"]
153+
if isinstance(self._data, dict) and (
154+
"response" in self._data and "limit_exceeded" in self._data["response"] and self._data["response"]["limit_exceeded"] is True
155+
):
156+
raise ServiceException(503, f"Limit Exceeded: {self._data['response']['message']}")
167157
elif "response" in self._data and "limit_exceeded" in self._data:
168-
return True, "limit exceeded"
169-
return False, ""
158+
raise ServiceException(503, "Limit Exceeded")
170159

171160
@property
172161
def status(self):

domaintools_async/__init__.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,8 @@ async def _make_async_request(self, session):
6464
self._data = results.json()
6565
else:
6666
self._data = results.text()
67-
limit_exceeded, message = self.check_limit_exceeded()
6867

69-
if limit_exceeded:
70-
self._limit_exceeded = True
71-
self._limit_exceeded_message = message
68+
self.check_limit_exceeded()
7269

7370
async def __awaitable__(self):
7471
if self._data is None:

0 commit comments

Comments
 (0)