queryMaker method

Query<Object?> queryMaker(
  1. String mid,
  2. QueryValue value,
  3. Query<Object?> query
)

Implementation

Query<Object?> queryMaker(String mid, QueryValue value, Query<Object?> query) {
  switch (value.operType) {
    case OperType.isEqualTo:
      return query.where(mid, isEqualTo: value.value);
    case OperType.isGreaterThan:
      return query.where(mid, isGreaterThan: value.value);
    case OperType.isGreaterThanOrEqualTo:
      return query.where(mid, isGreaterThanOrEqualTo: value.value);
    case OperType.isLessThan:
      return query.where(mid, isLessThan: value.value);
    case OperType.isLessThanOrEqualTo:
      return query.where(mid, isLessThanOrEqualTo: value.value);
    case OperType.isNotEqualTo:
      return query.where(mid, isNotEqualTo: value.value);
    case OperType.arrayContains:
      logger.finest('query=mid arrayContains ${value.value}');
      return query.where(mid, arrayContains: value.value);
    case OperType.arrayContainsAny:
      logger.finest('query=mid arrayContainsAny ${value.value}');
      return query.where(mid, arrayContainsAny: value.value);
    case OperType.whereIn:
      logger.finest('query=mid whereIn ${value.value}');
      return query.where(mid, whereIn: value.value);
    case OperType.whereNotIn:
      logger.finest('query=mid whereNotIn ${value.value}');
      return query.where(mid, whereNotIn: value.value);
    case OperType.isNull:
      logger.finest('query=mid isNull ${value.value}');
      return query.where(mid, isNull: value.value);
    case OperType.textSearch:
      logger.severe(
          'query=--- firebase IS NOT SUPPORT TextSearch !!! ---> change it to arrayContains');
      // 필드에서는 자동으로 RO 글자가 붙는다.  Read Only 라는 뜻이며, 이러한 중복 필드를 만들어 두어야 한다.
      return query.where('${mid}RO', arrayContains: value.value);
  }
}