1010
1111from ebaysdk import log
1212from ebaysdk .connection import BaseConnection
13+ from ebaysdk .exception import RequestPaginationError , PaginationLimit
1314from ebaysdk .config import Config
14- from ebaysdk .utils import getNodeText , dict2xml
15+ from ebaysdk .utils import dict2xml
1516
1617class Connection (BaseConnection ):
1718 """Connection class for the Finding service
@@ -85,6 +86,7 @@ def __init__(self, **kwargs):
8586 self .config .set ('version' , '1.12.0' )
8687 self .config .set ('compatibility' , '1.0.0' )
8788 self .config .set ('service' , 'FindingService' )
89+ self .config .set ('doc_url' , 'http://developer.ebay.com/DevZone/finding/CallRef/index.html' )
8890
8991 self .datetime_nodes = ['starttimefrom' , 'timestamp' , 'starttime' ,
9092 'endtime' ]
@@ -231,19 +233,27 @@ def _get_resp_body_errors(self):
231233 eMsg = None
232234 eId = None
233235
234- if e .getElementsByTagName ('severity' ):
235- eSeverity = getNodeText (e .getElementsByTagName ('severity' )[0 ])
236+ try :
237+ eSeverity = e .findall ('severity' )[0 ].text
238+ except IndexError :
239+ pass
236240
237- if e .getElementsByTagName ('domain' ):
238- eDomain = getNodeText (e .getElementsByTagName ('domain' )[0 ])
241+ try :
242+ eDomain = e .findall ('domain' )[0 ].text
243+ except IndexError :
244+ pass
239245
240- if e . getElementsByTagName ( 'errorId' ) :
241- eId = getNodeText ( e . getElementsByTagName ('errorId' )[0 ])
246+ try :
247+ eId = e . findall ('errorId' )[0 ]. text
242248 if int (eId ) not in resp_codes :
243249 resp_codes .append (int (eId ))
250+ except IndexError :
251+ pass
244252
245- if e .getElementsByTagName ('message' ):
246- eMsg = getNodeText (e .getElementsByTagName ('message' )[0 ])
253+ try :
254+ eMsg = e .findall ('message' )[0 ].text
255+ except IndexError :
256+ pass
247257
248258 msg = "Domain: %s, Severity: %s, errorId: %s, %s" \
249259 % (eDomain , eSeverity , eId , eMsg )
@@ -261,7 +271,7 @@ def _get_resp_body_errors(self):
261271 log .warn ("%s: %s\n \n " % (self .verb , "\n " .join (warnings )))
262272
263273 try :
264- if self .response_dict () .ack == 'Success' and len (errors ) > 0 and self .config .get ('errors' ):
274+ if self .response . reply .ack == 'Success' and len (errors ) > 0 and self .config .get ('errors' ):
265275 log .error ("%s: %s\n \n " % (self .verb , "\n " .join (errors )))
266276 elif len (errors ) > 0 :
267277 if self .config .get ('errors' ):
@@ -271,3 +281,23 @@ def _get_resp_body_errors(self):
271281 pass
272282
273283 return []
284+
285+ def next_page (self ):
286+ if type (self ._request_dict ) is not dict :
287+ raise RequestPaginationError ("request data is not of type dict" )
288+
289+ epp = self ._request_dict .get ('paginationInput' , {}).get ('enteriesPerPage' , None )
290+ num = int (self .response .reply .paginationOutput .pageNumber )
291+
292+ if num >= int (self .response .reply .paginationOutput .totalPages ):
293+ raise PaginationLimit ("no more pages to process" )
294+ return None
295+
296+ self ._request_dict ['paginationInput' ] = {}
297+
298+ if epp :
299+ self ._request_dict ['paginationInput' ]['enteriesPerPage' ] = epp
300+
301+ self ._request_dict ['paginationInput' ]['pageNumber' ] = int (num ) + 1
302+
303+ self .execute (self .verb , self ._request_dict )
0 commit comments