diff --git a/re2oapi/client.py b/re2oapi/client.py index 9654a8d..88f2c08 100644 --- a/re2oapi/client.py +++ b/re2oapi/client.py @@ -71,8 +71,12 @@ class Re2oAPIClient: return url def __getattr__(self, item): + if item.startswith('list_'): + def f(max_results=None, params={}, **kwargs): + if not 'page_size' in params.keys(): + params['page_size'] = 'all' response = self.get( self.get_url_for('%s-list' % item[len('list_'):], **kwargs), params=params @@ -84,20 +88,26 @@ class Re2oAPIClient: results += response['results'] return results[:max_results] if max_results else results return f + elif item.startswith('count_'): + def f(params={}, **kwargs): - params.update({'page_size': 1}) + if not 'page_size' in params.keys(): + params['page_size'] = 1 return self.get( self.get_url_for('%s-list' % item[len('count_'):], **kwargs), params=params )['count'] return f + elif item.startswith('view_'): + def f(params={}, **kwargs): return self.get( self.get_url_for('%s-details' % item[len('view_'):], **kwargs), params=params ) return f + else: raise AttributeError(item)