composeFilter method

dynamic composeFilter(
  1. FilterParams? filter
)

Implementation

dynamic composeFilter(FilterParams? filter) {
  filter = filter ?? FilterParams();

  var criteria = [];

  var id = filter.getAsNullableString('id');
  if (id != null) {
    criteria.add({'_id': id});
  }

  var userId = filter.getAsNullableString('user_id');
  if (userId != null) {
    criteria.add({'user_id': userId});
  }

  var active = filter.getAsNullableBoolean('active');
  if (active != null) {
    criteria.add({'active': active});
  }

  var fromTime = filter.getAsNullableDateTime('from_time');
  if (fromTime != null) {
    criteria.add({
      'request_time': {r'$gte': fromTime}
    });
  }

  var toTime = filter.getAsNullableDateTime('to_time');
  if (toTime != null) {
    criteria.add({
      'request_time': {r'$lt': toTime}
    });
  }

  return criteria.isNotEmpty ? {r'$and': criteria} : null;
}