query method
Implementation
Future<List> query(Map<String, String> parameters) async {
String? clear;
String? where;
String? order;
if (parameters.containsKey("clear")) clear = parameters["clear"];
if (parameters.containsKey("where")) where = parameters["where"];
if (parameters.containsKey("orderby")) order = parameters["orderby"];
if (clear == "true") this.clear();
logs = await hive_log.Log.query(where: where, orderby: order);
final List<Map<dynamic, dynamic>> list = [];
for (var entry in logs!) {
Map<String, String?> map = <String, String?>{};
map['type'] = entry['type'];
map['time'] = DateTime.fromMillisecondsSinceEpoch(entry['epoch'])
.toIso8601String()
.replaceAll("T", " ");
map['routine'] = entry['routine'];
map['message'] = entry['message'].replaceAll('\n', ' ');
bool ok = true;
if (ok) ok = _filter(parameters['type'], map['type']);
if (ok) ok = _filter(parameters['key'], map['key']);
if (ok) ok = _filter(parameters['message'], map['message']);
if (ok) ok = _filter(parameters['function'], map['function']);
if (ok) list.add(map);
}
list.sort((a, b) => b['time'].compareTo(a['time']));
return list;
}