1
0
Fork 0
mirror of synced 2024-09-30 09:18:14 +13:00

Update response filters for 0.13

This commit is contained in:
Bradley Schofield 2022-02-22 16:43:32 +00:00
parent a146626f36
commit e91c6a71b2
2 changed files with 72 additions and 0 deletions

View file

@ -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;

View file

@ -0,0 +1,68 @@
<?php
namespace Appwrite\Utopia\Response\Filters;
use Appwrite\Utopia\Response;
use Appwrite\Utopia\Response\Filter;
use Exception;
class V12 extends Filter
{
// Convert 0.13 Data format to 0.12 format
public function parse(array $content, string $model): array
{
$parsedResponse = $content;
switch ($model) {
// Update permissions
case Response::MODEL_ERROR:
$parsedResponse = $this->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;
}
}