mirror of
https://github.com/appwrite/appwrite
synced 2026-05-24 09:28:40 +00:00
Merge pull request #2819 from appwrite/update-response-filters
Update response filters ready for 0.13
This commit is contained in:
commit
279240d918
2 changed files with 271 additions and 15 deletions
|
|
@ -13,12 +13,13 @@ use Utopia\Config\Config;
|
|||
use Utopia\Domains\Domain;
|
||||
use Appwrite\Auth\Auth;
|
||||
use Appwrite\Network\Validator\Origin;
|
||||
use Appwrite\Utopia\Response\Filters\V11;
|
||||
use Appwrite\Utopia\Response\Filters\V11 as ResponseV11;
|
||||
use Appwrite\Utopia\Response\Filters\V12 as ResponseV12;
|
||||
use Utopia\CLI\Console;
|
||||
use Utopia\Database\Document;
|
||||
use Utopia\Database\Query;
|
||||
use Utopia\Database\Validator\Authorization;
|
||||
use Appwrite\Utopia\Request\Filters\V12;
|
||||
use Appwrite\Utopia\Request\Filters\V12 as RequestV12;
|
||||
use Utopia\Validator\Text;
|
||||
|
||||
Config::setParam('domainVerification', false);
|
||||
|
|
@ -46,7 +47,7 @@ App::init(function ($utopia, $request, $response, $console, $project, $dbForCons
|
|||
if ($requestFormat) {
|
||||
switch($requestFormat) {
|
||||
case version_compare ($requestFormat , '0.12.0', '<') :
|
||||
Request::setFilter(new V12());
|
||||
Request::setFilter(new RequestV12());
|
||||
break;
|
||||
default:
|
||||
Request::setFilter(null);
|
||||
|
|
@ -128,16 +129,6 @@ App::init(function ($utopia, $request, $response, $console, $project, $dbForCons
|
|||
$selfDomain = new Domain($request->getHostname());
|
||||
$endDomain = new Domain((string)$origin);
|
||||
|
||||
// var_dump('referer', $referrer);
|
||||
// var_dump('origin', $origin);
|
||||
// var_dump('port', $request->getPort());
|
||||
// var_dump('hostname', $request->getHostname());
|
||||
// var_dump('protocol', $request->getProtocol());
|
||||
// var_dump('method', $request->getMethod());
|
||||
// var_dump('ip', $request->getIP());
|
||||
// var_dump('-----------------');
|
||||
// var_dump($request->debug());
|
||||
|
||||
Config::setParam('domainVerification',
|
||||
($selfDomain->getRegisterable() === $endDomain->getRegisterable()) &&
|
||||
$endDomain->getRegisterable() !== '');
|
||||
|
|
@ -157,8 +148,11 @@ 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.11.0', '<=') :
|
||||
Response::setFilter(new V11());
|
||||
case version_compare ($responseFormat , '0.11.2', '<=') :
|
||||
Response::setFilter(new ResponseV11());
|
||||
break;
|
||||
case version_compare ($responseFormat , '0.12.4', '<='):
|
||||
Response::setFilter(new ResponseV12());
|
||||
break;
|
||||
default:
|
||||
Response::setFilter(null);
|
||||
|
|
|
|||
262
src/Appwrite/Utopia/Response/Filters/V12.php
Normal file
262
src/Appwrite/Utopia/Response/Filters/V12.php
Normal file
|
|
@ -0,0 +1,262 @@
|
|||
<?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) {
|
||||
case Response::MODEL_ERROR_DEV:
|
||||
case Response::MODEL_ERROR:
|
||||
$parsedResponse = $this->parseError($content);
|
||||
break;
|
||||
|
||||
case Response::MODEL_SESSION:
|
||||
$parsedResponse = $this->parseSession($content);
|
||||
break;
|
||||
case Response::MODEL_SESSION_LIST:
|
||||
$parsedResponse = $this->parseSessionList($content);
|
||||
break;
|
||||
|
||||
case Response::MODEL_FILE:
|
||||
$parsedResponse = $this->parseFile($content);
|
||||
break;
|
||||
case Response::MODEL_FILE_LIST:
|
||||
$parsedResponse = $this->parseFileList($content);
|
||||
break;
|
||||
|
||||
case Response::MODEL_FUNCTION:
|
||||
$parsedResponse = $this->parseFunction($content);
|
||||
break;
|
||||
case Response::MODEL_FUNCTION_LIST:
|
||||
$parsedResponse = $this->parseFunctionList($content);
|
||||
break;
|
||||
|
||||
case Response::MODEL_DEPLOYMENT:
|
||||
$parsedResponse = $this->parseDeployment($content);
|
||||
break;
|
||||
case Response::MODEL_DEPLOYMENT_LIST:
|
||||
$parsedResponse = $this->parseDeploymentList($content);
|
||||
break;
|
||||
|
||||
case Response::MODEL_EXECUTION:
|
||||
$parsedResponse = $this->parseExecution($content);
|
||||
break;
|
||||
case Response::MODEL_EXECUTION_LIST:
|
||||
$parsedResponse = $this->parseExecutionList($content);
|
||||
break;
|
||||
|
||||
case Response::MODEL_USAGE_BUCKETS:
|
||||
$parsedResponse = $this->parseUsageBuckets($content);
|
||||
break;
|
||||
|
||||
case Response::MODEL_USAGE_STORAGE:
|
||||
$parsedResponse = $this->parseUsageStorage($content);
|
||||
break;
|
||||
|
||||
case Response::MODEL_TEAM:
|
||||
$parsedResponse = $this->parseTeam($content);
|
||||
break;
|
||||
case Response::MODEL_TEAM_LIST:
|
||||
$parsedResponse = $this->parseTeamList($content);
|
||||
break;
|
||||
|
||||
case Response::MODEL_DOCUMENT_LIST:
|
||||
case Response::MODEL_COLLECTION_LIST:
|
||||
case Response::MODEL_INDEX_LIST:
|
||||
case Response::MODEL_USER_LIST:
|
||||
case Response::MODEL_LOG_LIST:
|
||||
case Response::MODEL_BUCKET_LIST:
|
||||
case Response::MODEL_MEMBERSHIP_LIST:
|
||||
case Response::MODEL_RUNTIME_LIST:
|
||||
case Response::MODEL_BUILD_LIST:
|
||||
case Response::MODEL_PROJECT_LIST:
|
||||
case Response::MODEL_WEBHOOK_LIST:
|
||||
case Response::MODEL_KEY_LIST:
|
||||
case Response::MODEL_PLATFORM_LIST:
|
||||
case Response::MODEL_DOMAIN_LIST:
|
||||
case Response::MODEL_COUNTRY_LIST:
|
||||
case Response::MODEL_CONTINENT_LIST:
|
||||
case Response::MODEL_LANGUAGE_LIST:
|
||||
case Response::MODEL_CURRENCY_LIST:
|
||||
case Response::MODEL_PHONE_LIST:
|
||||
case Response::MODEL_METRIC_LIST:
|
||||
case Response::MODEL_ATTRIBUTE_LIST:
|
||||
$parsedResponse = $this->parseList($content);
|
||||
break;
|
||||
}
|
||||
|
||||
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 parseSessionList(array $content)
|
||||
{
|
||||
$sessions = $content['sessions'];
|
||||
$parsedResponse = [];
|
||||
foreach ($sessions as $document) {
|
||||
$parsedResponse[] = $this->parseSession($document);
|
||||
}
|
||||
$content['sessions'] = $parsedResponse;
|
||||
$content['sum'] = $content['total'];
|
||||
unset($content['total']);
|
||||
return $content;
|
||||
}
|
||||
|
||||
protected function parseFile(array $content)
|
||||
{
|
||||
unset($content['bucketId']);
|
||||
unset($content['chunksTotal']);
|
||||
unset($content['chunksUploaded']);
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
protected function parseFileList(array $content)
|
||||
{
|
||||
$files = $content['files'];
|
||||
$parsedResponse = [];
|
||||
foreach ($files as $document) {
|
||||
$parsedResponse[] = $this->parseFile($document);
|
||||
}
|
||||
$content['files'] = $parsedResponse;
|
||||
$content['sum'] = $content['total'];
|
||||
unset($content['total']);
|
||||
return $content;
|
||||
}
|
||||
|
||||
protected function parseFunction(array $content)
|
||||
{
|
||||
$content['tag'] = $content['deployment'];
|
||||
unset($content['deployment']);
|
||||
return $content;
|
||||
}
|
||||
|
||||
protected function parseFunctionList(array $content)
|
||||
{
|
||||
$functions = $content['functions'];
|
||||
$parsedResponse = [];
|
||||
foreach ($functions as $document) {
|
||||
$parsedResponse[] = $this->parseFunction($document);
|
||||
}
|
||||
$content['functions'] = $parsedResponse;
|
||||
$content['sum'] = $content['total'];
|
||||
unset($content['total']);
|
||||
return $content;
|
||||
}
|
||||
|
||||
protected function parseDeployment(array $content)
|
||||
{
|
||||
$content['functionId'] = $content['resourceId'];
|
||||
$content['command'] = $content['entrypoint'];
|
||||
return $content;
|
||||
}
|
||||
|
||||
protected function parseDeploymentList(array $content)
|
||||
{
|
||||
$deployments = $content['deployments'];
|
||||
$parsedResponse = [];
|
||||
foreach ($deployments as $document) {
|
||||
$parsedResponse[] = $this->parseDeployment($document);
|
||||
}
|
||||
$content['deployments'] = $parsedResponse;
|
||||
$content['sum'] = $content['total'];
|
||||
unset($content['total']);
|
||||
return $content;
|
||||
}
|
||||
|
||||
protected function parseUsageBuckets(array $content)
|
||||
{
|
||||
unset($content['filesStorage']);
|
||||
}
|
||||
|
||||
protected function parseUsageStorage(array $content)
|
||||
{
|
||||
$content['storage'] = $content['filesStorage'];
|
||||
unset($content['filesStorage']);
|
||||
|
||||
$content['files'] = $content['tagsStorage'];
|
||||
unset($content['tagsStorage']);
|
||||
|
||||
unset($content['filesCount']);
|
||||
unset($content['bucketsCount']);
|
||||
unset($content['bucketsCreate']);
|
||||
unset($content['bucketsRead']);
|
||||
unset($content['bucketsUpdate']);
|
||||
unset($content['bucketsDelete']);
|
||||
unset($content['filesCount']);
|
||||
unset($content['bucketsDelete']);
|
||||
unset($content['filesCreate']);
|
||||
unset($content['filesRead']);
|
||||
unset($content['filesUpdate']);
|
||||
unset($content['filesDelete']);
|
||||
}
|
||||
|
||||
protected function parseExecution($content) {
|
||||
$content['exitCode'] = $content['statusCode'];
|
||||
unset($content['statusCode']);
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
protected function parseExecutionList($content) {
|
||||
$executions = $content['executions'];
|
||||
$parsedResponse = [];
|
||||
foreach ($executions as $document) {
|
||||
$parsedResponse[] = $this->parseExecution($document);
|
||||
}
|
||||
$content['executions'] = $parsedResponse;
|
||||
$content['sum'] = $content['total'];
|
||||
unset($content['total']);
|
||||
return $content;
|
||||
}
|
||||
|
||||
protected function parseTeam($content) {
|
||||
$content['sum'] = $content['total'];
|
||||
unset($content['total']);
|
||||
return $content;
|
||||
}
|
||||
|
||||
protected function parseTeamList($content) {
|
||||
$teams = $content['teams'];
|
||||
$parsedResponse = [];
|
||||
foreach ($teams as $document) {
|
||||
$parsedResponse[] = $this->parseTeam($document);
|
||||
}
|
||||
$content['teams'] = $parsedResponse;
|
||||
$content['sum'] = $content['total'];
|
||||
unset($content['total']);
|
||||
return $content;
|
||||
}
|
||||
|
||||
protected function parseList($content) {
|
||||
$content['sum'] = $content['total'];
|
||||
unset($content['total']);
|
||||
return $content;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue