From 577eb107da4294f483e2cbc4526fe43731879311 Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Fri, 31 Dec 2021 16:45:49 +0100 Subject: [PATCH] Added request filters for queries --- src/Appwrite/Utopia/Request/Filters/V12.php | 31 ++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/Appwrite/Utopia/Request/Filters/V12.php b/src/Appwrite/Utopia/Request/Filters/V12.php index ad346f3d35..392d62aee8 100644 --- a/src/Appwrite/Utopia/Request/Filters/V12.php +++ b/src/Appwrite/Utopia/Request/Filters/V12.php @@ -120,7 +120,36 @@ class V12 extends Filter protected function convertQueries(array $content): array { - // TODO: remove filters, search; add queries + $queries = []; + + if(!empty($content['filters'])) { + foreach ($content['filters'] as $filter) { + $operators = ['=' => 'equal', '!=' => 'notEqual', '>' => 'greater', '<' => 'lesser', '<=' => 'lesserEqual', '>=' => 'greaterEqual']; + foreach ($operators as $operator => $operatorVerbose) { + if (\str_contains($filter, $operator)) { + $usedOperator = $operator; + break; + } + } + + if(isset($usedOperator)) { + [ $attributeKey, $filterValue ] = \explode($usedOperator, $filter); + // TODO: String or not? Any way to figure out? + $query = $attributeKey . '.' . $operators[$usedOperator] . '("' . $filterValue . '")'; + \array_push($queries, $query); + } + } + } + + // TODO: Can we even migrate search? Which key? Is $id key OK? + // TODO: What's difference between !empty and isset? + if(!empty($content['search'])) { + \array_push($queries, '$id.search("' . $content['search'] . '")'); + } + + unset($content['filters']); + unset($content['search']); + $content['queries'] = $queries; return $content; }