list method
Retrieves a list of objects of type T
from the directory.
This method reads all the files in the directory and filters out the files that have a '.json' extension.
For each filtered file, it reads the contents, decrypts the JSON if encriptionKey is not blank, and converts it to an object of type T
.
The resulting objects are added to a list, which is returned at the end.
Returns a Future that completes with an Iterable of objects of type T
.
Implementation
Future<Iterable<T>> list() async {
List<T> list = [];
if (await directory.exists()) {
await for (var entity in directory.list()) {
if (entity is File && entity.path.endsWith('.json')) {
final encryptedJson = await entity.readAsString();
final json = encriptionKey.isNotBlank ? encryptedJson.applyXorEncrypt(encriptionKey) : encryptedJson; // Decrypt the JSON if key is not blank
final data = fromJsonFunction(jsonDecode(json));
list.add(data);
}
}
}
return list;
}