tabularDataByFilter method

Future<TabularDataByFilterResponse> tabularDataByFilter({
  1. Filter? filter,
  2. int? limit,
  3. Order? sortOrder,
  4. String? last,
  5. dynamic countOnly = false,
})

Filter and download tabular data. The data will be paginated into pages of limit items, and the last ID will be included in the returned response.

_viam = await Viam.withApiKey(
    dotenv.env['API_KEY_ID'] ?? '',
    dotenv.env['API_KEY'] ?? ''
);
final dataClient = _viam.dataClient;

try {
 // Create a filter to target specific tabular data
 final filter = Filter(
  componentName: "arm-1",
 );

 final response = await dataClient.tabularDataByFilter(
   filter: filter,
   limit: 10
 );
 print('Number of items: ${response.count.toInt()}');
 print('Total size: ${response.totalSizeBytes.toInt()}');
 for (var metadata in response.metadata) {
   print(metadata);
 }
 for (var data in response.data) {
   print(data);
 }

 print('Successfully retrieved tabular data by filter');
} catch (e) {
 print('Error retrieving tabular data by filter: $e');
}

For more information, see Data Client API.

Implementation

Future<TabularDataByFilterResponse> tabularDataByFilter(
    {Filter? filter, int? limit, Order? sortOrder, String? last, countOnly = false}) async {
  final dataRequest = _makeDataRequest(filter, limit, last, sortOrder);
  final request = TabularDataByFilterRequest()
    ..dataRequest = dataRequest
    ..countOnly = countOnly;
  return await _dataClient.tabularDataByFilter(request);
}