11from safe_logger import SafeLogger
2- from dku_utils import get_value_from_path
2+ from dku_utils import get_value_from_path , extract_key_using_json_path
33
44
55logger = SafeLogger ("api-connect plugin Pagination" )
@@ -32,7 +32,7 @@ def configure_paging(self, config=None, skip_key=None, limit_key=None, total_key
3232 self .pagination_type = config .get ("pagination_type" , pagination_type )
3333 if self .pagination_type == "next_page" :
3434 self .next_page_key = config .get ("next_page_key" , next_page_key )
35- self .next_page_key = None if self .next_page_key == [ '' ] else self .next_page_key
35+ self .next_page_key = None if self .next_page_key == '' else self .next_page_key
3636 elif self .pagination_type in ["offset" , "page" ]:
3737 self .skip_key = config .get ("skip_key" , skip_key )
3838
@@ -80,8 +80,8 @@ def update_next_page(self, data, response_links=None):
8080 self .is_last_batch_empty = True
8181 else :
8282 batch_size = 1
83- if self .next_page_key and ( len ( self . next_page_key ) > 0 ) :
84- self .next_page_url = self . get_from_path (data , self .next_page_key )
83+ if self .next_page_key :
84+ self .next_page_url = extract_key_using_json_path (data , self .next_page_key )
8585 if self .skip_key :
8686 self .skip = data .get (self .skip_key )
8787 if self .limit_key :
@@ -92,17 +92,6 @@ def update_next_page(self, data, response_links=None):
9292 if self .total :
9393 self .remaining_records = self .total - self .records_to_skip
9494
95- def get_from_path (self , dictionary , path ):
96- if isinstance (path , list ):
97- edge = dictionary
98- for key in path :
99- edge = edge .get (key )
100- if edge is None :
101- return None
102- return edge
103- else :
104- return dictionary .get (path )
105-
10695 def has_next_page (self ):
10796 if self .is_last_batch_empty :
10897 logger .info ("has_next_page:last was batch empty -> False" )
0 commit comments