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