@@ -304,7 +304,7 @@ def calculate_query(self) -> str:
304304 str: GraphQl string with variables and headers.
305305
306306 Raises:
307- ValueError: Query has no fiels .
307+ ValueError: Query has no fields .
308308
309309 """
310310 if not self ._children :
@@ -396,6 +396,7 @@ def continuous_query(
396396 while self .need_query :
397397 query_str = self .calculate_query ()
398398 variables = self .get_variables_values ()
399+
399400 response = con .query_graphql (query_str , variables )
400401 if response .errors :
401402 raise GraphQlQueryFailed (
@@ -902,8 +903,12 @@ def parse_result(
902903 progress_data [cursor_key ] = nodes_by_cursor
903904
904905 page_info = value ["pageInfo" ]
905- new_cursor = page_info ["endCursor" ]
906- self ._need_query = page_info ["hasNextPage" ]
906+ if self ._order == SortOrder .ascending :
907+ new_cursor = page_info ["endCursor" ]
908+ self ._need_query = page_info ["hasNextPage" ]
909+ else :
910+ new_cursor = page_info ["startCursor" ]
911+ self ._need_query = page_info ["hasPreviousPage" ]
907912 edges = value ["edges" ]
908913 # Fake result parse
909914 if not edges :
@@ -949,9 +954,7 @@ def _get_cursor_key(self) -> str:
949954
950955 def get_filters (self ) -> dict [str , Any ]:
951956 filters = super ().get_filters ()
952- limit_key = "first"
953- if self ._order == SortOrder .descending :
954- limit_key = "last"
957+ limit_key = "first" if self ._order == SortOrder .ascending else "last"
955958
956959 limit_amount = 300
957960 if self ._limit :
@@ -962,7 +965,10 @@ def get_filters(self) -> dict[str, Any]:
962965 filters [limit_key ] = limit_amount
963966
964967 if self ._cursor :
965- filters ["after" ] = self ._cursor
968+ cursor_key = (
969+ "after" if self ._order == SortOrder .ascending else "before"
970+ )
971+ filters [cursor_key ] = self ._cursor
966972 return filters
967973
968974 def calculate_query (self ) -> str :
@@ -1001,7 +1007,11 @@ def calculate_query(self) -> str:
10011007 output .append (edges_offset + "pageInfo {" )
10021008 for page_key in (
10031009 "endCursor" ,
1004- "hasNextPage" ,
1010+ (
1011+ "hasNextPage"
1012+ if self ._order == SortOrder .ascending
1013+ else "hasPreviousPage"
1014+ ),
10051015 ):
10061016 output .append (node_offset + page_key )
10071017 output .append (edges_offset + "}" )
0 commit comments