list method

Future<ListEntity<FileInfoEntity>> list({
  1. bool stored = true,
  2. bool removed = false,
  3. int limit = 100,
  4. int? offset,
  5. FilesOrdering ordering = const FilesOrdering(FilesFilterValue.DatetimeUploaded),
  6. dynamic fromFilter,
  7. FilesIncludeFields? include,
  8. @Deprecated('Due to the API stabilizing recognition feature moved to the [ApiAddons]') bool includeRecognitionInfo = false,
})

Retrieve files

stored true to only include files that were stored, false to include temporary ones. removed true to only include removed files in the response, false to include existing files. limit a preferred amount of files in a list for a single response. ordering specifies the way files are sorted in a returned list fromFilter a starting point for filtering files. The value depends on your ordering parameter value.

Implementation

Future<ListEntity<FileInfoEntity>> list({
  bool stored = true,
  bool removed = false,
  int limit = 100,
  int? offset,
  FilesOrdering ordering =
      const FilesOrdering(FilesFilterValue.DatetimeUploaded),
  dynamic fromFilter,

  /// Since v0.7
  /// Include additional fields to the file object, such as: appdata
  FilesIncludeFields? include,

  /// Only v0.6
  @Deprecated(
      'Due to the API stabilizing recognition feature moved to the [ApiAddons]')
  bool includeRecognitionInfo = false,
}) async {
  assert(limit > 0 && limit <= 1000, 'Should be in 1..1000 range');
  _ensureRightVersionForRecognitionApi(includeRecognitionInfo);

  if (include != null) _ensureRightVersionForApplicationData();

  if (fromFilter != null) {
    if (ordering.field == FilesFilterValue.DatetimeUploaded) {
      assert(
        fromFilter is DateTime,
        'fromFilter should be an DateTime for datetime_uploaded ordering',
      );
      fromFilter = (fromFilter as DateTime).toIso8601String();
    } else if (ordering.field == FilesFilterValue.Size) {
      assert(
        fromFilter is int && fromFilter > 0,
        'fromFilter should be an positive integer for size ordering',
      );
      fromFilter = fromFilter.toString();
    }
  }

  final response = await resolveStreamedResponse(
    createRequest(
        'GET',
        buildUri('$apiUrl/files/', {
          'limit': limit.toString(),
          'ordering': ordering.toString(),
          'stored': stored.toString(),
          'removed': removed.toString(),
          if (offset != null) 'offset': offset.toString(),
          if (fromFilter != null) 'from': fromFilter,
          if (include != null) 'include': include.toString(),
          if (includeRecognitionInfo) 'add_fields': 'rekognition_info',
        })).send(),
  );

  return ListEntity.fromJson(
    response,
    (response['results'] as List)
        .map((item) => FileInfoEntity.fromJson(item))
        .toList(),
  );
}