@@ -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