get method
Executes the query and returns the results
Implementation
Future<List<Map<String, dynamic>>> get() async {
final localStorage = SyncLayerCore.instance.localStorage;
// Get all data from collection (returns List<DataRecord>)
final allRecords = await localStorage.getAllData(collectionName);
// Convert DataRecord to Map<String, dynamic>
final allData = allRecords.map((record) {
return jsonDecode(record.data) as Map<String, dynamic>;
}).toList();
// Apply filters
var results = allData.where((data) {
return _filters.every((filter) => filter.matches(data));
}).toList();
// Apply sorting
if (_sorts.isNotEmpty) {
results.sort((a, b) {
for (final sort in _sorts) {
final comparison = sort.compare(a, b);
if (comparison != 0) return comparison;
}
return 0;
});
}
// Apply offset
if (_offset != null && _offset! > 0) {
results = results.skip(_offset!).toList();
}
// Apply limit
if (_limit != null && _limit! > 0) {
results = results.take(_limit!).toList();
}
return results;
}