applySingleFieldQueryParameter method

Query<Object?> applySingleFieldQueryParameter(
  1. Query<Object?> query,
  2. QueryParameter param
)

Implementation

Query<Object?> applySingleFieldQueryParameter(
  Query<Object?> query,
  QueryParameter param,
) {
  String? field = param.field;
  if (field == null) {
    return query;
  }
  switch (param.type) {
    case QueryType.where:
      return query.where(field, isEqualTo: param.value);
    case QueryType.whereIsNotEqualTo:
      return query.where(field, isNotEqualTo: param.value);
    case QueryType.whereArrayContains:
      return query.where(field, arrayContains: param.value);
    case QueryType.whereArrayContainsAny:
      return query.where(field, arrayContainsAny: param.value);
    case QueryType.whereGreaterThan:
      return query.where(field, isGreaterThan: param.value);
    case QueryType.whereGreaterThanOrEqual:
      return query.where(field, isGreaterThanOrEqualTo: param.value);
    case QueryType.whereLessThan:
      return query.where(field, isLessThan: param.value);
    case QueryType.whereLessThanOrEqual:
      return query.where(field, isLessThanOrEqualTo: param.value);
    case QueryType.whereIn:
      return query.where(field, whereIn: param.value);
    case QueryType.orderBy:
      return query.orderBy(field, descending: param.value ?? false);
    case QueryType.ascendingOrder:
      return query.orderBy(field, descending: false);
    case QueryType.descendingOrder:
      return query.orderBy(field, descending: true);
    default:
      return query;
  }
}