getTrashContent method
Implementation
Future<List<Map<String, dynamic>>> getTrashContent() async {
final response = await api
.post('/v3/dir/content', {'uuid': 'trash', 'foldersOnly': false});
final data = response['data'];
final List<dynamic> rawFolders = data['folders'] ?? [];
final List<dynamic> rawUploads = data['uploads'] ?? [];
List<Map<String, dynamic>> results = [];
for (var f in rawFolders) {
String name = 'Unknown';
try {
var dec = await crypto.tryDecrypt(f['name'], masterKeys);
name = dec.startsWith('{') ? json.decode(dec)['name'] : dec;
} catch (_) {
name = '[Encrypted]';
}
results.add({
'type': 'folder',
'name': name,
'uuid': f['uuid'],
'size': 0,
'parent': f['parent'],
'timestamp': f['timestamp'],
'lastModified': f['lastModified'] ?? 0,
});
}
for (var f in rawUploads) {
String name = 'Unknown';
int size = 0;
int lastModified = 0;
try {
final m =
json.decode(await crypto.tryDecrypt(f['metadata'], masterKeys));
name = m['name'];
size = m['size'] ?? 0;
lastModified = m['lastModified'] ?? 0;
} catch (_) {
name = '[Encrypted]';
}
results.add({
'type': 'file',
'name': name,
'uuid': f['uuid'],
'size': size,
'parent': f['parent'],
'timestamp': f['timestamp'],
'lastModified': lastModified,
});
}
return results;
}