Skip to content

Commit 6eb87bb

Browse files
committed
Fix requesting parts which were available in cache
1 parent d1b3a03 commit 6eb87bb

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

provider_partstack.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,17 @@ def __init__(self, query_url, query_token, query_timeout, db, logger):
7474
self._logger = logger
7575

7676
def fetch(self, parts, status):
77+
# Filter out the parts which need to be requested and abort if
78+
# there are no parts to be requested.
79+
filtered_parts = [p for p in parts if 'results' not in p]
80+
if len(filtered_parts) == 0:
81+
return 0
82+
7783
# Request parts data.
7884
query_response = requests.post(
7985
self._query_url,
8086
headers=self._build_headers(),
81-
json=self._build_request(parts),
87+
json=self._build_request(filtered_parts),
8288
timeout=self._query_timeout,
8389
)
8490
query_json = query_response.json()
@@ -127,10 +133,13 @@ def _build_request(self, parts):
127133
queries = []
128134
variables = {}
129135
for i in range(len(parts)):
130-
query = 'q{}:findStocks(mfgpartno:$mpn{}){{...f}}'.format(i, i)
131-
args.append('$mpn{}:String!'.format(i))
132-
queries.append(query)
133-
variables['mpn{}'.format(i)] = parts[i]['mpn']
136+
if 'results' not in parts[i]:
137+
query = 'q{}:findStocks(mfgpartno:$mpn{}){{...f}}'.format(i, i)
138+
args.append('$mpn{}:String!'.format(i))
139+
queries.append(query)
140+
variables['mpn{}'.format(i)] = parts[i]['mpn']
141+
if len(queries) == 0:
142+
return None
134143
query = 'query Stocks({}) {{\n{}\n}}'.format(
135144
','.join(args),
136145
'\n'.join(queries)

0 commit comments

Comments
 (0)