diff --git a/src/Appwrite/Utopia/Request/Filters/V22.php b/src/Appwrite/Utopia/Request/Filters/V22.php index cd06c2f6db..1c20f521bb 100644 --- a/src/Appwrite/Utopia/Request/Filters/V22.php +++ b/src/Appwrite/Utopia/Request/Filters/V22.php @@ -31,12 +31,15 @@ class V22 extends Filter } $queries = []; + $internals = false; + $values = []; foreach ($parsed as $query) { try { if ($query->getMethod() === 'select') { foreach ($query->getValues() as $select) { $queries[] = Query::select($select); + $values[] = $select; } } else { $queries[] = $query; @@ -47,6 +50,14 @@ class V22 extends Filter } } + if (count($values)) { + $queries[] = Query::select('$sequence'); + $queries[] = Query::select('$id'); + $queries[] = Query::select('$updatedAt'); + $queries[] = Query::select('$createdAt'); + $queries[] = Query::select('$permissions'); + } + $resolvedQueries = []; foreach ($queries as $query) { diff --git a/tests/e2e/Services/Databases/Legacy/DatabasesBase.php b/tests/e2e/Services/Databases/Legacy/DatabasesBase.php index d987d1bd2e..5d1e822653 100644 --- a/tests/e2e/Services/Databases/Legacy/DatabasesBase.php +++ b/tests/e2e/Services/Databases/Legacy/DatabasesBase.php @@ -2449,6 +2449,30 @@ trait DatabasesBase $this->assertEquals($document['title'], $response['body']['documents'][0]['title']); $this->assertEquals($document['releaseYear'], $response['body']['documents'][0]['releaseYear']); $this->assertEquals($document['$sequence'], $response['body']['documents'][0]['$sequence']); + + /** + * Use specific X-Appwrite-Response-Format 1.8.0 + */ + $response = $this->client->call(Client::METHOD_GET, '/databases/' . $databaseId . '/collections/' . $document['$collectionId'] . '/documents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + 'X-Appwrite-Response-Format' => '1.8.0', + ], $this->getHeaders()), [ + 'queries' => [ + '{"method":"select","values":["title"]}', + ], + ]); + + var_dump($response); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertArrayHasKey('title', $response['body']['documents'][0]); + $this->assertArrayNotHasKey('birthDay', $response['body']['documents'][0]); + $this->assertArrayHasKey('$sequence', $response['body']['documents'][0]); + $this->assertArrayHasKey('$id', $response['body']['documents'][0]); + $this->assertArrayHasKey('$createdAt', $response['body']['documents'][0]); + $this->assertArrayHasKey('$updatedAt', $response['body']['documents'][0]); + $this->assertArrayHasKey('$permissions', $response['body']['documents'][0]); } /**