query method

Future<List> query(
  1. Map<String, String> parameters
)

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;
}