Skip to content

Commit 571b676

Browse files
committed
removes the page converter from the pagination data flow
1 parent cbd7553 commit 571b676

2 files changed

Lines changed: 12 additions & 16 deletions

File tree

apimatic_core/api_call.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ def execute(self):
8686
return self._response_handler.handle(_http_response, self._global_configuration.get_global_errors())
8787

8888

89-
def paginate(self, page_iterable_creator, page_creator, paginated_items_converter):
90-
return page_iterable_creator(PaginatedData(self, page_creator, paginated_items_converter))
89+
def paginate(self, page_iterable_creator, paginated_items_converter):
90+
return page_iterable_creator(PaginatedData(self, paginated_items_converter))
9191

9292
def clone(self, global_configuration=None, request_builder=None, response_handler=None,
9393
endpoint_configuration=None, pagination_stategies=None, paginated_item_converter=None):

apimatic_core/pagination/paginated_data.py

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,12 @@ def request_builder(self):
1919
def page_size(self):
2020
return self._page_size
2121

22-
def __init__(self, api_call, page_creator, paginated_items_converter):
23-
24-
if page_creator is None:
25-
raise ValueError('page_creator cannot be None')
22+
def __init__(self, api_call, paginated_items_converter):
2623

2724
if paginated_items_converter is None:
2825
raise ValueError('paginated_items_converter cannot be None')
2926

3027
self._api_call = copy.deepcopy(api_call)
31-
self._page_creator = page_creator
3228
self._paginated_items_converter = paginated_items_converter
3329
self._initial_request_builder = api_call.request_builder
3430
self._pagination_strategies = self._api_call.get_pagination_stategies
@@ -38,7 +34,7 @@ def __init__(self, api_call, page_creator, paginated_items_converter):
3834
http_callback=self._http_call_context)
3935
self._global_configuration = self._api_call.global_configuration.clone_with(
4036
http_client_configuration=_http_client_configuration)
41-
self._page = None
37+
self._paged_response = None
4238
self._items = []
4339
self._page_size = 0
4440
self._current_index = 0
@@ -52,8 +48,8 @@ def __next__(self):
5248
self._current_index += 1
5349
return item
5450

55-
_, self._page = self._fetch_next_page()
56-
self._items = self._paginated_items_converter(self._page)
51+
self._paged_response = self._fetch_next_page()
52+
self._items = self._paginated_items_converter(self._paged_response.data)
5753
if not self._items:
5854
raise StopIteration
5955
self._page_size, self._current_index = len(self._items), 0
@@ -69,14 +65,14 @@ def pages(self):
6965
paginated_data = self._get_new_self_instance()
7066

7167
while True:
72-
metadata, paginated_data._page = paginated_data._fetch_next_page()
73-
if not paginated_data._page or not metadata:
68+
paginated_data._paged_response = paginated_data._fetch_next_page()
69+
if not paginated_data._paged_response:
7470
break
75-
paginated_data._items = self._paginated_items_converter(paginated_data._page)
71+
paginated_data._items = self._paginated_items_converter(paginated_data._paged_response)
7672
if not paginated_data._items:
7773
break
7874
paginated_data._page_size = len(paginated_data._items)
79-
yield self._page_creator(metadata, paginated_data._page)
75+
yield paginated_data._paged_response
8076

8177
def _fetch_next_page(self):
8278
for pagination_strategy in self._pagination_strategies:
@@ -87,13 +83,13 @@ def _fetch_next_page(self):
8783
response = self._api_call.clone(
8884
global_configuration=self._global_configuration, request_builder=request_builder
8985
).execute()
90-
return pagination_strategy.apply_metadata(response), response
86+
return pagination_strategy.apply_metadata(response)
9187
except Exception as ex:
9288
raise ex
9389
return []
9490

9591
def _get_new_self_instance(self):
9692
return PaginatedData(
97-
self._api_call.clone(request_builder=self._initial_request_builder), self._page_creator,
93+
self._api_call.clone(request_builder=self._initial_request_builder),
9894
self._paginated_items_converter
9995
)

0 commit comments

Comments
 (0)