diff --git a/app/controllers/general.php b/app/controllers/general.php index afe9a5f5e2..4c0ae05d88 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -19,6 +19,7 @@ use Utopia\Database\Document; use Utopia\Database\Query; use Utopia\Database\Validator\Authorization; use Appwrite\Utopia\Request\Filters\V12; +use Appwrite\Utopia\Response\Filters\V12 as FiltersV12; use Utopia\Validator\Text; Config::setParam('domainVerification', false); @@ -157,6 +158,9 @@ App::init(function ($utopia, $request, $response, $console, $project, $dbForCons $responseFormat = $request->getHeader('x-appwrite-response-format', App::getEnv('_APP_SYSTEM_RESPONSE_FORMAT', '')); if ($responseFormat) { switch($responseFormat) { + case version_compare ($responseFormat , '0.12.3', '<='): + Response::setFilter(new FiltersV12()); + break; case version_compare ($responseFormat , '0.11.0', '<=') : Response::setFilter(new V11()); break; diff --git a/src/Appwrite/Utopia/Response/Filters/V12.php b/src/Appwrite/Utopia/Response/Filters/V12.php new file mode 100644 index 0000000000..1df770f59b --- /dev/null +++ b/src/Appwrite/Utopia/Response/Filters/V12.php @@ -0,0 +1,68 @@ +parseError($content); + break; + case Response::MODEL_SESSION: + $parsedResponse = $this->parseSession($content); + + case Response::MODEL_FILE: + $parsedResponse = $this->parseFile($content); + + case Response::MODEL_FUNCTION: + $parsedResponse = $this->parseFunction($content); + + } + + return $parsedResponse; + } + + protected function parseError(array $content) + { + unset($content['type']); + return $content; + } + + protected function parseSession(array $content) + { + $content['providerToken'] = $content['providerAccessToken']; + unset($content['providerAccessToken']); + + unset($content['providerAccessTokenExpiry']); + + unset($content['providerRefreshToken']); + + return $content; + } + + protected function parseFile(array $content) + { + unset($content['bucketId']); + unset($content['chunksTotal']); + unset($content['chunksUploaded']); + + return $content; + } + + protected function parseFunction(array $content) + { + $content['required'] = implode(' ', $content['required']); + + return $content; + } +} \ No newline at end of file