From e91c6a71b2682d6bd3e7713ab09cb0776d9070f9 Mon Sep 17 00:00:00 2001 From: Bradley Schofield Date: Tue, 22 Feb 2022 16:43:32 +0000 Subject: [PATCH 1/9] Update response filters for 0.13 --- app/controllers/general.php | 4 ++ src/Appwrite/Utopia/Response/Filters/V12.php | 68 ++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 src/Appwrite/Utopia/Response/Filters/V12.php 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 From 35557e03b0079e426f1f70ef458ae9993932d20e Mon Sep 17 00:00:00 2001 From: Bradley Schofield Date: Wed, 23 Feb 2022 10:42:45 +0000 Subject: [PATCH 2/9] Update V12.php --- src/Appwrite/Utopia/Response/Filters/V12.php | 35 +++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/Appwrite/Utopia/Response/Filters/V12.php b/src/Appwrite/Utopia/Response/Filters/V12.php index 1df770f59b..65e249e7e1 100644 --- a/src/Appwrite/Utopia/Response/Filters/V12.php +++ b/src/Appwrite/Utopia/Response/Filters/V12.php @@ -27,6 +27,12 @@ class V12 extends Filter case Response::MODEL_FUNCTION: $parsedResponse = $this->parseFunction($content); + case Response::MODEL_USAGE_BUCKETS: + $parsedResponse = $this->parseUsageBuckets($content); + + case Response::MODEL_USAGE_STORAGE: + $parsedResponse = $this->parseUsageStorage($content); + } return $parsedResponse; @@ -61,8 +67,35 @@ class V12 extends Filter protected function parseFunction(array $content) { - $content['required'] = implode(' ', $content['required']); + $content['execute'] = implode(' ', $content['execute']); 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']); + } } \ No newline at end of file From d130df9f78d40da44cb7c343305080311fc605f6 Mon Sep 17 00:00:00 2001 From: Bradley Schofield Date: Fri, 25 Feb 2022 10:56:49 +0000 Subject: [PATCH 3/9] Updated to be in sync with 0.13 functions --- src/Appwrite/Utopia/Response/Filters/V12.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Appwrite/Utopia/Response/Filters/V12.php b/src/Appwrite/Utopia/Response/Filters/V12.php index 65e249e7e1..7977144af1 100644 --- a/src/Appwrite/Utopia/Response/Filters/V12.php +++ b/src/Appwrite/Utopia/Response/Filters/V12.php @@ -27,6 +27,9 @@ class V12 extends Filter case Response::MODEL_FUNCTION: $parsedResponse = $this->parseFunction($content); + case Response::MODEL_EXECUTION: + $parsedResponse = $this->parseExecution($content); + case Response::MODEL_USAGE_BUCKETS: $parsedResponse = $this->parseUsageBuckets($content); @@ -68,6 +71,7 @@ class V12 extends Filter protected function parseFunction(array $content) { $content['execute'] = implode(' ', $content['execute']); + $content['tag'] = $content['deployment']; return $content; } @@ -98,4 +102,10 @@ class V12 extends Filter unset($content['filesUpdate']); unset($content['filesDelete']); } + + protected function parseExecution($content) { + $content['exitCode'] = $content['statusCode']; + + return $content; + } } \ No newline at end of file From bdc8d498a7c9732bfd932facf1320d865cffa37a Mon Sep 17 00:00:00 2001 From: Bradley Schofield Date: Mon, 28 Feb 2022 09:33:26 +0000 Subject: [PATCH 4/9] Update V12.php --- src/Appwrite/Utopia/Response/Filters/V12.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Appwrite/Utopia/Response/Filters/V12.php b/src/Appwrite/Utopia/Response/Filters/V12.php index 7977144af1..3c147c70d7 100644 --- a/src/Appwrite/Utopia/Response/Filters/V12.php +++ b/src/Appwrite/Utopia/Response/Filters/V12.php @@ -70,7 +70,6 @@ class V12 extends Filter protected function parseFunction(array $content) { - $content['execute'] = implode(' ', $content['execute']); $content['tag'] = $content['deployment']; return $content; From e24fb55f68e3ed4ff87c4470b2e40841c2eff89f Mon Sep 17 00:00:00 2001 From: Bradley Schofield Date: Mon, 28 Feb 2022 20:54:20 +0000 Subject: [PATCH 5/9] Address Comments --- app/controllers/general.php | 14 +++++++------- src/Appwrite/Utopia/Response/Filters/V12.php | 7 ++++++- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index 4c0ae05d88..06209fcd22 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -13,13 +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\Response\Filters\V12 as FiltersV12; +use Appwrite\Utopia\Request\Filters\V12 as RequestV12; use Utopia\Validator\Text; Config::setParam('domainVerification', false); @@ -47,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); @@ -158,11 +158,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.12.3', '<='): - Response::setFilter(new FiltersV12()); + case version_compare ($responseFormat , '0.12.4', '<='): + Response::setFilter(new ResponseV12()); break; case version_compare ($responseFormat , '0.11.0', '<=') : - Response::setFilter(new V11()); + Response::setFilter(new ResponseV11()); break; default: Response::setFilter(null); diff --git a/src/Appwrite/Utopia/Response/Filters/V12.php b/src/Appwrite/Utopia/Response/Filters/V12.php index 3c147c70d7..b93878eac2 100644 --- a/src/Appwrite/Utopia/Response/Filters/V12.php +++ b/src/Appwrite/Utopia/Response/Filters/V12.php @@ -20,22 +20,27 @@ class V12 extends Filter break; case Response::MODEL_SESSION: $parsedResponse = $this->parseSession($content); + break; case Response::MODEL_FILE: $parsedResponse = $this->parseFile($content); + break; case Response::MODEL_FUNCTION: $parsedResponse = $this->parseFunction($content); + break; case Response::MODEL_EXECUTION: $parsedResponse = $this->parseExecution($content); + break; case Response::MODEL_USAGE_BUCKETS: $parsedResponse = $this->parseUsageBuckets($content); + break; case Response::MODEL_USAGE_STORAGE: $parsedResponse = $this->parseUsageStorage($content); - + break; } return $parsedResponse; From 22ca8fc8c626104fa8c922be56fad77be5c4d164 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Tue, 1 Mar 2022 14:59:24 +0400 Subject: [PATCH 6/9] feat: add missing response models --- app/controllers/general.php | 16 +--- src/Appwrite/Utopia/Response/Filters/V12.php | 82 ++++++++++++++++++++ 2 files changed, 85 insertions(+), 13 deletions(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index 01bf3bdda9..d32d362329 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -129,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() !== ''); @@ -158,12 +148,12 @@ 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.2', '<=') : + Response::setFilter(new ResponseV11()); + break; case version_compare ($responseFormat , '0.12.4', '<='): Response::setFilter(new ResponseV12()); break; - case version_compare ($responseFormat , '0.11.0', '<=') : - Response::setFilter(new ResponseV11()); - break; default: Response::setFilter(null); } diff --git a/src/Appwrite/Utopia/Response/Filters/V12.php b/src/Appwrite/Utopia/Response/Filters/V12.php index b93878eac2..1e04333383 100644 --- a/src/Appwrite/Utopia/Response/Filters/V12.php +++ b/src/Appwrite/Utopia/Response/Filters/V12.php @@ -15,24 +15,45 @@ class V12 extends Filter switch ($model) { // Update permissions + 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); @@ -64,6 +85,17 @@ class V12 extends Filter return $content; } + protected function parseSessionList(array $content) + { + $sessions = $content['sessions']; + $parsedResponse = []; + foreach ($sessions as $document) { + $parsedResponse[] = $this->parseSession($document); + } + $content['sessions'] = $parsedResponse; + return $content; + } + protected function parseFile(array $content) { unset($content['bucketId']); @@ -73,6 +105,17 @@ class V12 extends Filter return $content; } + protected function parseFileList(array $content) + { + $files = $content['files']; + $parsedResponse = []; + foreach ($files as $document) { + $parsedResponse[] = $this->parseFile($document); + } + $content['files'] = $parsedResponse; + return $content; + } + protected function parseFunction(array $content) { $content['tag'] = $content['deployment']; @@ -80,6 +123,35 @@ class V12 extends Filter return $content; } + protected function parseFunctionList(array $content) + { + $functions = $content['functions']; + $parsedResponse = []; + foreach ($functions as $document) { + $parsedResponse[] = $this->parseFunction($document); + } + $content['functions'] = $parsedResponse; + 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; + return $content; + } + protected function parseUsageBuckets(array $content) { unset($content['filesStorage']); @@ -112,4 +184,14 @@ class V12 extends Filter return $content; } + + protected function parseExecutionList($content) { + $executions = $content['executions']; + $parsedResponse = []; + foreach ($executions as $document) { + $parsedResponse[] = $this->parseExecution($document); + } + $content['executions'] = $parsedResponse; + return $content; + } } \ No newline at end of file From 6cce8a1f07b7ce62170a9bf001a66af11f5070e8 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Tue, 1 Mar 2022 15:03:45 +0400 Subject: [PATCH 7/9] feat: add missing response models --- src/Appwrite/Utopia/Response/Filters/V12.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Appwrite/Utopia/Response/Filters/V12.php b/src/Appwrite/Utopia/Response/Filters/V12.php index 1e04333383..6cd7d11e9a 100644 --- a/src/Appwrite/Utopia/Response/Filters/V12.php +++ b/src/Appwrite/Utopia/Response/Filters/V12.php @@ -14,7 +14,6 @@ class V12 extends Filter $parsedResponse = $content; switch ($model) { - // Update permissions case Response::MODEL_ERROR_DEV: case Response::MODEL_ERROR: $parsedResponse = $this->parseError($content); From ed9335afdf4fbb5e2eb31de17709130bcdecbfd4 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Tue, 1 Mar 2022 15:12:18 +0400 Subject: [PATCH 8/9] feat: add missing response models --- src/Appwrite/Utopia/Response/Filters/V12.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Appwrite/Utopia/Response/Filters/V12.php b/src/Appwrite/Utopia/Response/Filters/V12.php index 6cd7d11e9a..a2f3d130de 100644 --- a/src/Appwrite/Utopia/Response/Filters/V12.php +++ b/src/Appwrite/Utopia/Response/Filters/V12.php @@ -118,7 +118,7 @@ class V12 extends Filter protected function parseFunction(array $content) { $content['tag'] = $content['deployment']; - + unset($content['deployment']); return $content; } @@ -180,6 +180,7 @@ class V12 extends Filter protected function parseExecution($content) { $content['exitCode'] = $content['statusCode']; + unset($content['statusCode']); return $content; } From b9dbe3a7135dae098b22c5ec5f516266b4a632d4 Mon Sep 17 00:00:00 2001 From: Christy Jacob Date: Tue, 1 Mar 2022 16:00:15 +0400 Subject: [PATCH 9/9] feat: add missing response models for sum->lists --- src/Appwrite/Utopia/Response/Filters/V12.php | 65 ++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/src/Appwrite/Utopia/Response/Filters/V12.php b/src/Appwrite/Utopia/Response/Filters/V12.php index a2f3d130de..210add92d6 100644 --- a/src/Appwrite/Utopia/Response/Filters/V12.php +++ b/src/Appwrite/Utopia/Response/Filters/V12.php @@ -61,6 +61,37 @@ class V12 extends Filter 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; @@ -92,6 +123,8 @@ class V12 extends Filter $parsedResponse[] = $this->parseSession($document); } $content['sessions'] = $parsedResponse; + $content['sum'] = $content['total']; + unset($content['total']); return $content; } @@ -112,6 +145,8 @@ class V12 extends Filter $parsedResponse[] = $this->parseFile($document); } $content['files'] = $parsedResponse; + $content['sum'] = $content['total']; + unset($content['total']); return $content; } @@ -130,6 +165,8 @@ class V12 extends Filter $parsedResponse[] = $this->parseFunction($document); } $content['functions'] = $parsedResponse; + $content['sum'] = $content['total']; + unset($content['total']); return $content; } @@ -148,6 +185,8 @@ class V12 extends Filter $parsedResponse[] = $this->parseDeployment($document); } $content['deployments'] = $parsedResponse; + $content['sum'] = $content['total']; + unset($content['total']); return $content; } @@ -192,6 +231,32 @@ class V12 extends Filter $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; } } \ No newline at end of file