listTidbDataServicePages function

Future<List<Map<String, dynamic>>> listTidbDataServicePages(
  1. TidbCloudManagementApi api,
  2. String path,
  3. String listKey
)

Lists every page from a TiDB Data Service collection.

Implementation

Future<List<Map<String, dynamic>>> listTidbDataServicePages(
  TidbCloudManagementApi api,
  String path,
  String listKey,
) async {
  final items = <Map<String, dynamic>>[];
  String? pageToken;
  do {
    final response = await api.dataService(
      "GET",
      path,
      query: {
        "pageSize": "100",
        if (pageToken != null) "pageToken": pageToken,
      },
    );
    final values = response[listKey];
    if (values is List) {
      items.addAll(
        values.whereType<Map>().map(
              (value) => value.map(
                (key, item) => MapEntry(key.toString(), item),
              ),
            ),
      );
    }
    final next = response["nextPageToken"]?.toString() ?? "";
    pageToken = next.isEmpty ? null : next;
  } while (pageToken != null);
  return items;
}