getContinuations function
Future<List>
getContinuations(
- JsonMap results,
- String continuationType,
- int? limit,
- RequestFuncType requestFunc,
- ParseFuncType parseFunc, {
- String ctokenPath = '',
- String? additionalParams,
Returns list of parsed continuation results.
resultsResult List from request data.continuationTypeType of continuation, determines which subkey will be used to navigate the continuation return data.limitDetermines minimum of how many items to retrieve in total.nullto retrieve all items until no more continuations are returned.requestFuncThe request function to use to get the continuations.parseFuncThe parse function to apply on the returned continuations.ctokenPathRarely used specifier applied to retrieve the ctoken ("next<ctoken_path>ContinuationData"). (Default: empty String).additionalParamsOptional additional params to pass to therequestFunc. (Default: use getContinuationParams).
Implementation
Future<List> getContinuations(
JsonMap results,
String continuationType,
int? limit,
RequestFuncType requestFunc,
ParseFuncType parseFunc, {
String ctokenPath = '',
String? additionalParams,
}) async {
final List items = [];
JsonMap realResults = results;
while (realResults.containsKey('continuations') &&
(limit == null || items.length < limit)) {
final params =
additionalParams ?? getContinuationParams(realResults, ctokenPath);
final JsonMap response = await requestFunc(params);
if (response.containsKey('continuationContents') &&
(response['continuationContents'] as JsonMap).containsKey(
continuationType,
)) {
realResults =
(response['continuationContents'] as JsonMap)[continuationType]
as JsonMap;
} else {
break;
}
final contents = await getContinuationContents(realResults, parseFunc);
if (contents.isEmpty) break;
items.addAll(contents);
}
return items;
}