diff --git a/src/Appwrite/Utopia/Response.php b/src/Appwrite/Utopia/Response.php index 9fbb82389a..de7f12e1d1 100644 --- a/src/Appwrite/Utopia/Response.php +++ b/src/Appwrite/Utopia/Response.php @@ -252,9 +252,9 @@ class Response extends SwooleResponse { $output = $this->output($document, $model); - // If filter is set, parse the item + // If filter is set, parse the output if(self::isFilter()){ - $item = self::getFilter()->parse($output, $model); + $output = self::getFilter()->parse($output, $model); } $this->json(!empty($output) ? $output : new stdClass()); diff --git a/tests/e2e/General/HTTPTest.php b/tests/e2e/General/HTTPTest.php index 46672c1a71..1282a9e480 100644 --- a/tests/e2e/General/HTTPTest.php +++ b/tests/e2e/General/HTTPTest.php @@ -149,4 +149,41 @@ class HTTPTest extends Scope unlink(realpath(__DIR__ . '/../../resources/open-api3.json')); } + + public function testResponseHeader() { + + /** + * Test without header + */ + $response = $this->client->call(Client::METHOD_GET, '/locale/continents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => 'console', + ], $this->getHeaders())); + + $body = $response['body']; + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals($body['sum'], 7); + $this->assertEquals($body['continents'][0]['name'], 'Africa'); + $this->assertEquals($body['continents'][0]['code'], 'AF'); + $this->assertEquals($body['continents'][1]['name'], 'Antarctica'); + $this->assertEquals($body['continents'][1]['code'], 'AN'); + $this->assertEquals($body['continents'][2]['name'], 'Asia'); + $this->assertEquals($body['continents'][2]['code'], 'AS'); + + /** + * Test with header + */ + $response = $this->client->call(Client::METHOD_GET, '/locale/continents', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => 'console', + 'x-appwrite-response-format' => '0.6.2' + ], $this->getHeaders())); + + $body = $response['body']; + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertEquals($body['sum'], 7); + $this->assertEquals($body['continents']['AF'], 'Africa'); + $this->assertEquals($body['continents']['AN'], 'Antarctica'); + $this->assertEquals($body['continents']['AS'], 'Asia'); + } } \ No newline at end of file