Fix databases tests

This commit is contained in:
Steven
2022-08-20 00:15:18 +00:00
parent 146cb6a0d8
commit 2bde7aa02b
3 changed files with 14 additions and 7 deletions
+3 -4
View File
@@ -25,7 +25,6 @@ use Utopia\Database\Adapter\MariaDB;
use Utopia\Database\Validator\Authorization;
use Utopia\Database\Validator\Key;
use Utopia\Database\Validator\Permissions;
use Utopia\Database\Validator\Query as QueryValidator;
use Utopia\Database\Validator\Structure;
use Utopia\Database\Validator\UID;
use Utopia\Database\Exception\Authorization as AuthorizationException;
@@ -38,8 +37,8 @@ use Appwrite\Network\Validator\Email;
use Appwrite\Network\Validator\IP;
use Appwrite\Network\Validator\URL;
use Appwrite\Utopia\Database\Validator\CustomId;
use Appwrite\Utopia\Database\Validator\Queries as QueriesValidator;
use Appwrite\Utopia\Database\Validator\OrderAttributes;
use Appwrite\Utopia\Database\Validator\IndexedQueries;
use Appwrite\Utopia\Database\Validator\Queries\LimitOffsetCursorFilterOrderQuery;
use Appwrite\Utopia\Response;
use Appwrite\Detector\Detector;
use Appwrite\Event\Database as EventDatabase;
@@ -2062,7 +2061,7 @@ App::get('/v1/databases/:databaseId/collections/:collectionId/documents')
if (!empty($allQueries)) {
$attributes = $collection->getAttribute('attributes', []);
$validator = new QueriesValidator(new QueryValidator($attributes), $attributes, $collection->getAttribute('indexes', []), true);
$validator = new IndexedQueries(new LimitOffsetCursorFilterOrderQuery(attributes: $attributes), $attributes, $collection->getAttribute('indexes', []));
if (!$validator->isValid($allQueries)) {
throw new Exception(Exception::GENERAL_QUERY_INVALID, $validator->getDescription());
}
@@ -103,11 +103,19 @@ class IndexedQueries extends Queries
*/
public function isValid($value): bool
{
if (!$this->isValid($value)) {
if (!parent::isValid($value)) {
return false;
}
$queries = Query::parseQueries($value);
$queries = [];
foreach ($value as $query) {
if (!$query instanceof Query) {
$query = Query::parse($query);
}
$queries[] = $query;
}
$grouped = Query::groupByType($queries);
/** @var Query[] */ $filters = $grouped['filters'];
/** @var string[] */ $orderAttributes = $grouped['orderAttributes'];
@@ -44,7 +44,7 @@ class LimitOffsetCursorQuery extends LimitOffsetQuery
* 2. method is cursorBefore or cursorAfter and value is not null
*
* Otherwise, returns false
*
*
* @param Query $value
*
* @return bool