list method
Future<ListEntity<FileInfoEntity> >
list({
- bool stored = true,
- bool removed = false,
- int limit = 100,
- int? offset,
- FilesOrdering ordering = const FilesOrdering(FilesFilterValue.DatetimeUploaded),
- dynamic fromFilter,
- FilesIncludeFields? include,
- @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(),
);
}