getValidatedContinuations function

Future<List> getValidatedContinuations(
  1. JsonMap results,
  2. String continuationType,
  3. int limit,
  4. int perPage,
  5. RequestFuncType requestFunc,
  6. ParseFuncType parseFunc, {
  7. String ctokenPath = '',
})

Returns validated continuations.

Implementation

Future<List> getValidatedContinuations(
  JsonMap results,
  String continuationType,
  int limit,
  int perPage,
  RequestFuncType requestFunc,
  ParseFuncType parseFunc, {
  String ctokenPath = '',
}) async {
  final List items = [];
  JsonMap realResults = results;

  while (realResults.containsKey('continuations') && items.length < limit) {
    final additionalParams = getContinuationParams(realResults, ctokenPath);

    JsonMap wrappedParseFunc(JsonMap rawResponse) =>
        getParsedContinuationItems(rawResponse, parseFunc, continuationType);
    bool validateFunc(JsonMap parsed) =>
        validateResponse(parsed, perPage, limit, items.length);

    final response = await resendRequestUntilParsedResponseIsValid(
      requestFunc,
      additionalParams,
      wrappedParseFunc,
      validateFunc,
      3,
    );
    realResults = response['results'] as JsonMap;
    items.addAll(response['parsed'] as List);
  }

  return items;
}