queryMaker method

void queryMaker(
  1. String mid,
  2. QueryValue value,
  3. List queryList
)

Implementation

void queryMaker(String mid, QueryValue value, List<dynamic> queryList) {
  switch (value.operType) {
    case OperType.isEqualTo:
      queryList.add(Query.equal(mid, value.value));
      break;
    case OperType.isGreaterThan:
      queryList.add(Query.greaterThan(mid, value.value));
      break;
    case OperType.isGreaterThanOrEqualTo:
      queryList.add(Query.greaterThanEqual(mid, value.value));
      break;
    case OperType.isLessThan:
      queryList.add(Query.lessThan(mid, value.value));
      break;
    case OperType.isLessThanOrEqualTo:
      queryList.add(Query.lessThanEqual(mid, value.value));
      break;
    case OperType.isNotEqualTo:
      queryList.add(Query.notEqual(mid, value.value));
      break;
    case OperType.arrayContains:
      if (value.value is String) {
        String temp = '"${value.value}"'; // 쌍따옴표로 묶어 주어야 한다.
        queryList.add(Query.search(mid, temp));
      } else {
        queryList.add(Query.search(mid, value.value));
      }
      break;
    case OperType.arrayContainsAny: // search 로 대체
      if (value.value is String) {
        String temp = '"${value.value}"'; // 쌍따옴표로 묶어 주어야 한다.
        queryList.add(Query.search(mid, temp));
      } else {
        queryList.add(Query.search(mid, value.value));
      }
      break;
    case OperType.whereIn: // search 로 대체
      queryList.add(Query.equal(mid, value.value));
      //queryList.add(Query.search(mid, value.value));
      break;
    case OperType.whereNotIn: // appwrite에서는 해당 쿼리가 없음
      assert(true);
      break;
    case OperType.isNull: // appwrite에서는 해당 쿼리가 없음
      assert(true);
      // 최신버전 appwrite에서는 아래와 같이 처리 가능
      // if (value.value is bool) {
      //   if (value.value == true) {
      //     queryList.add(Query.isNull(mid));
      //   } else {
      //     queryList.add(Query.isNotNull(mid));
      //   }
      // }
      break;
    case OperType.textSearch:
      queryList.add(Query.search(mid, value.value));
      break;
  }
}