From 360935fd28b89bb5c9fb5fcbcf9b39ca95ffc9b9 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Tue, 22 Aug 2023 14:13:37 -0400 Subject: [PATCH] Apply suggestions from code review --- app/controllers/general.php | 2 +- src/Appwrite/Utopia/Response/Filters/V16.php | 257 --------- .../unit/Utopia/Response/Filters/V16Test.php | 486 ------------------ 3 files changed, 1 insertion(+), 744 deletions(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index 3c4ed65fca..a3f477d9fa 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -25,7 +25,7 @@ use Appwrite\Utopia\Response\Filters\V12 as ResponseV12; use Appwrite\Utopia\Response\Filters\V13 as ResponseV13; use Appwrite\Utopia\Response\Filters\V14 as ResponseV14; use Appwrite\Utopia\Response\Filters\V15 as ResponseV15; -use Appwrite\Utopia\Response\Filters\V15 as ResponseV16; +use Appwrite\Utopia\Response\Filters\V16 as ResponseV16; use Utopia\CLI\Console; use Utopia\Database\Database; use Utopia\Database\DateTime; diff --git a/src/Appwrite/Utopia/Response/Filters/V16.php b/src/Appwrite/Utopia/Response/Filters/V16.php index c2efadec04..6943bd8f4d 100644 --- a/src/Appwrite/Utopia/Response/Filters/V16.php +++ b/src/Appwrite/Utopia/Response/Filters/V16.php @@ -31,35 +31,6 @@ class V16 extends Filter case Response::MODEL_PROJECT: $parsedResponse = $this->parseProject($parsedResponse); break; - // We've decided to push these usage changes to a future release so - // these changes may still be helpful down the line. - // case Response::MODEL_USAGE_BUCKETS: - // $parsedResponse = $this->parseUsageBuckets($parsedResponse); - // break; - // case Response::MODEL_USAGE_COLLECTION: - // $parsedResponse = $this->parseUsageCollection($parsedResponse); - // break; - // case Response::MODEL_USAGE_DATABASE: - // $parsedResponse = $this->parseUsageDatabase($parsedResponse); - // break; - // case Response::MODEL_USAGE_DATABASES: - // $parsedResponse = $this->parseUsageDatabases($parsedResponse); - // break; - // case Response::MODEL_USAGE_FUNCTION: - // $parsedResponse = $this->parseUsageFunction($parsedResponse); - // break; - // case Response::MODEL_USAGE_FUNCTIONS: - // $parsedResponse = $this->parseUsageFunctions($parsedResponse); - // break; - // case Response::MODEL_USAGE_PROJECT: - // $parsedResponse = $this->parseUsageProject($parsedResponse); - // break; - // case Response::MODEL_USAGE_STORAGE: - // $parsedResponse = $this->parseUsageStorage($parsedResponse); - // break; - // case Response::MODEL_USAGE_USERS: - // $parsedResponse = $this->parseUsageUsers($parsedResponse); - // break; case Response::MODEL_VARIABLE: $parsedResponse = $this->parseVariable($parsedResponse); break; @@ -126,234 +97,6 @@ class V16 extends Filter return $content; } - protected function parseUsageBuckets(array $content) - { - if (isset($content['filesTotal'])) { - $content['filesCount'] = $content['filesTotal']; - unset($content['filesTotal']); - } - - $attributesToInit = ['filesCreate', 'filesRead', 'filesUpdate', 'filesDelete']; - foreach ($attributesToInit as $attribute) { - $content[$attribute] = []; - } - - return $content; - } - - protected function parseUsageCollection(array $content) - { - if (isset($content['documentsTotal'])) { - $content['documentsCount'] = $content['documentsTotal']; - unset($content['documentsTotal']); - } - - $attributesToInit = ['documentsCreate', 'documentsRead', 'documentsUpdate', 'documentsDelete']; - foreach ($attributesToInit as $attribute) { - $content[$attribute] = []; - } - - return $content; - } - - protected function parseUsageDatabase(array $content) - { - if (isset($content['documentsTotal'])) { - $content['documentsCount'] = $content['documentsTotal']; - unset($content['documentsTotal']); - } - - if (isset($content['collectionsTotal'])) { - $content['collectionsCount'] = $content['collectionsTotal']; - unset($content['collectionsTotal']); - } - - $attributesToInit = [ - 'documentsCreate', - 'documentsRead', - 'documentsUpdate', - 'documentsDelete', - 'collectionsCreate', - 'collectionsRead', - 'collectionsUpdate', - 'collectionsDelete', - ]; - foreach ($attributesToInit as $attribute) { - $content[$attribute] = []; - } - - return $content; - } - - protected function parseUsageDatabases(array $content) - { - if (isset($content['documentsTotal'])) { - $content['documentsCount'] = $content['documentsTotal']; - unset($content['documentsTotal']); - } - - if (isset($content['collectionsTotal'])) { - $content['collectionsCount'] = $content['collectionsTotal']; - unset($content['collectionsTotal']); - } - - if (isset($content['databasesTotal'])) { - $content['databasesCount'] = $content['databasesTotal']; - unset($content['databasesTotal']); - } - - $attributesToInit = [ - 'documentsCreate', - 'documentsRead', - 'documentsUpdate', - 'documentsDelete', - 'collectionsCreate', - 'collectionsRead', - 'collectionsUpdate', - 'collectionsDelete', - 'databasesCreate', - 'databasesRead', - 'databasesUpdate', - 'databasesDelete', - ]; - foreach ($attributesToInit as $attribute) { - $content[$attribute] = []; - } - - return $content; - } - - protected function parseUsageFunction(array $content) - { - $attributesToInit = [ - 'buildsFailure', - 'buildsSuccess', - 'executionsFailure', - 'executionsSuccess', - ]; - foreach ($attributesToInit as $attribute) { - $content[$attribute] = []; - } - - return $content; - } - - protected function parseUsageFunctions(array $content) - { - $attributesToInit = [ - 'buildsFailure', - 'buildsSuccess', - 'executionsFailure', - 'executionsSuccess', - ]; - foreach ($attributesToInit as $attribute) { - $content[$attribute] = []; - } - - return $content; - } - - protected function parseUsageProject(array $content) - { - if (isset($content['requestsTotal'])) { - $content['requests'] = $content['requestsTotal']; - unset($content['requestsTotal']); - } - - if (isset($content['executionsTotal'])) { - $content['executions'] = $content['executionsTotal']; - unset($content['executionsTotal']); - } - - if (isset($content['documentsTotal'])) { - $content['documents'] = $content['documentsTotal']; - unset($content['documentsTotal']); - } - - if (isset($content['databasesTotal'])) { - $content['databases'] = $content['databasesTotal']; - unset($content['databasesTotal']); - } - - if (isset($content['usersTotal'])) { - $content['users'] = $content['usersTotal']; - unset($content['usersTotal']); - } - - if (isset($content['filesStorage'])) { - $content['storage'] = $content['filesStorage']; - unset($content['filesStorage']); - } - - if (isset($content['bucketsTotal'])) { - $content['buckets'] = $content['bucketsTotal']; - unset($content['bucketsTotal']); - } - - return $content; - } - - protected function parseUsageStorage(array $content) - { - if (isset($content['bucketsTotal'])) { - $content['bucketsCount'] = $content['bucketsTotal']; - unset($content['bucketsTotal']); - } - - if (isset($content['filesTotal'])) { - $content['filesCount'] = $content['filesTotal']; - unset($content['filesTotal']); - } - - if (isset($content['filesStorage'])) { - $content['storage'] = $content['filesStorage']; - unset($content['filesStorage']); - } - - $attributesToInit = [ - 'bucketsCreate', - 'bucketsRead', - 'bucketsUpdate', - 'bucketsDelete', - 'filesCreate', - 'filesRead', - 'filesUpdate', - 'filesDelete', - ]; - foreach ($attributesToInit as $attribute) { - $content[$attribute] = []; - } - - return $content; - } - - protected function parseUsageUsers(array $content) - { - if (isset($content['usersTotal'])) { - $content['usersCount'] = $content['usersTotal']; - unset($content['usersTotal']); - } - - if (isset($content['sessionsTotal'])) { - $content['sessionsCreate'] = $content['sessionsTotal']; - unset($content['sessionsTotal']); - } - - $attributesToInit = [ - 'usersCreate', - 'usersRead', - 'usersUpdate', - 'usersDelete', - 'sessionsProviderCreate', - 'sessionsDelete', - ]; - foreach ($attributesToInit as $attribute) { - $content[$attribute] = []; - } - - return $content; - } - protected function parseVariable(array $content) { if (isset($content['resourceId'])) { diff --git a/tests/unit/Utopia/Response/Filters/V16Test.php b/tests/unit/Utopia/Response/Filters/V16Test.php index e819c80e5e..957295e753 100644 --- a/tests/unit/Utopia/Response/Filters/V16Test.php +++ b/tests/unit/Utopia/Response/Filters/V16Test.php @@ -200,492 +200,6 @@ class V16Test extends TestCase $this->assertEquals($expected, $result); } - public function usageBucketsProvider(): array - { - $metrics = [ - [ - 'value' => 123, - 'date' => Model::TYPE_DATETIME_EXAMPLE, - ] - ]; - return [ - 'filesCount and deleted usage' => [ - [ - 'filesTotal' => $metrics, - ], - [ - 'filesCount' => $metrics, - 'filesCreate' => [], - 'filesRead' => [], - 'filesUpdate' => [], - 'filesDelete' => [], - ], - ], - ]; - } - - /** - * @dataProvider usageBucketsProvider - */ - public function testUsageBuckets(array $content, array $expected): void - { - $model = Response::MODEL_USAGE_BUCKETS; - - $result = $this->filter->parse($content, $model); - - $this->assertEquals($expected, $result); - } - - public function usageCollectionProvider(): array - { - $metrics = [ - [ - 'value' => 123, - 'date' => Model::TYPE_DATETIME_EXAMPLE, - ] - ]; - return [ - 'documentsCount and deleted usage' => [ - [ - 'documentsTotal' => $metrics, - ], - [ - 'documentsCount' => $metrics, - 'documentsCreate' => [], - 'documentsRead' => [], - 'documentsUpdate' => [], - 'documentsDelete' => [], - ], - ], - ]; - } - - /** - * @dataProvider usageCollectionProvider - */ - public function testUsageCollection(array $content, array $expected): void - { - $model = Response::MODEL_USAGE_COLLECTION; - - $result = $this->filter->parse($content, $model); - - $this->assertEquals($expected, $result); - } - - public function usageDatabaseProvider(): array - { - $metrics = [ - [ - 'value' => 123, - 'date' => Model::TYPE_DATETIME_EXAMPLE, - ] - ]; - return [ - 'collectionsCount and deleted usage' => [ - [ - 'collectionsTotal' => $metrics, - ], - [ - 'collectionsCount' => $metrics, - 'documentsCreate' => [], - 'documentsRead' => [], - 'documentsUpdate' => [], - 'documentsDelete' => [], - 'collectionsCreate' => [], - 'collectionsRead' => [], - 'collectionsUpdate' => [], - 'collectionsDelete' => [], - ], - ], - 'documentsCount and deleted usage' => [ - [ - 'documentsTotal' => $metrics, - ], - [ - 'documentsCount' => $metrics, - 'documentsCreate' => [], - 'documentsRead' => [], - 'documentsUpdate' => [], - 'documentsDelete' => [], - 'collectionsCreate' => [], - 'collectionsRead' => [], - 'collectionsUpdate' => [], - 'collectionsDelete' => [], - ], - ], - ]; - } - - /** - * @dataProvider usageDatabaseProvider - */ - public function testUsageDatabase(array $content, array $expected): void - { - $model = Response::MODEL_USAGE_DATABASE; - - $result = $this->filter->parse($content, $model); - - $this->assertEquals($expected, $result); - } - - public function usageDatabasesProvider(): array - { - $metrics = [ - [ - 'value' => 123, - 'date' => Model::TYPE_DATETIME_EXAMPLE, - ] - ]; - return [ - 'databasesCount and deleted usage' => [ - [ - 'databasesTotal' => $metrics, - ], - [ - 'databasesCount' => $metrics, - 'documentsCreate' => [], - 'documentsRead' => [], - 'documentsUpdate' => [], - 'documentsDelete' => [], - 'collectionsCreate' => [], - 'collectionsRead' => [], - 'collectionsUpdate' => [], - 'collectionsDelete' => [], - 'databasesCreate' => [], - 'databasesRead' => [], - 'databasesUpdate' => [], - 'databasesDelete' => [], - ], - ], - 'collectionsCount and deleted usage' => [ - [ - 'collectionsTotal' => $metrics, - ], - [ - 'collectionsCount' => $metrics, - 'documentsCreate' => [], - 'documentsRead' => [], - 'documentsUpdate' => [], - 'documentsDelete' => [], - 'collectionsCreate' => [], - 'collectionsRead' => [], - 'collectionsUpdate' => [], - 'collectionsDelete' => [], - 'databasesCreate' => [], - 'databasesRead' => [], - 'databasesUpdate' => [], - 'databasesDelete' => [], - ], - ], - 'documentsCount and deleted usage' => [ - [ - 'documentsTotal' => $metrics, - ], - [ - 'documentsCount' => $metrics, - 'documentsCreate' => [], - 'documentsRead' => [], - 'documentsUpdate' => [], - 'documentsDelete' => [], - 'collectionsCreate' => [], - 'collectionsRead' => [], - 'collectionsUpdate' => [], - 'collectionsDelete' => [], - 'databasesCreate' => [], - 'databasesRead' => [], - 'databasesUpdate' => [], - 'databasesDelete' => [], - ], - ], - ]; - } - - /** - * @dataProvider usageDatabasesProvider - */ - public function testUsageDatabases(array $content, array $expected): void - { - $model = Response::MODEL_USAGE_DATABASES; - - $result = $this->filter->parse($content, $model); - - $this->assertEquals($expected, $result); - } - - public function usageFunctionProvider(): array - { - return [ - 'deleted usage' => [ - [ - ], - [ - 'buildsFailure' => [], - 'buildsSuccess' => [], - 'executionsFailure' => [], - 'executionsSuccess' => [], - ], - ], - ]; - } - - /** - * @dataProvider usageFunctionProvider - */ - public function testUsageFunction(array $content, array $expected): void - { - $model = Response::MODEL_USAGE_FUNCTION; - - $result = $this->filter->parse($content, $model); - - $this->assertEquals($expected, $result); - } - - public function usageFunctionsProvider(): array - { - return [ - 'deleted usage' => [ - [ - ], - [ - 'buildsFailure' => [], - 'buildsSuccess' => [], - 'executionsFailure' => [], - 'executionsSuccess' => [], - ], - ], - ]; - } - - /** - * @dataProvider usageFunctionsProvider - */ - public function testUsageFunctions(array $content, array $expected): void - { - $model = Response::MODEL_USAGE_FUNCTIONS; - - $result = $this->filter->parse($content, $model); - - $this->assertEquals($expected, $result); - } - - public function usageProjectProvider(): array - { - $metrics = [ - [ - 'value' => 123, - 'date' => Model::TYPE_DATETIME_EXAMPLE, - ] - ]; - return [ - 'requests usage' => [ - [ - 'requestsTotal' => $metrics, - ], - [ - 'requests' => $metrics, - ], - ], - 'executions usage' => [ - [ - 'executionsTotal' => $metrics, - ], - [ - 'executions' => $metrics, - ], - ], - 'documents usage' => [ - [ - 'documentsTotal' => $metrics, - ], - [ - 'documents' => $metrics, - ], - ], - 'databases usage' => [ - [ - 'databasesTotal' => $metrics, - ], - [ - 'databases' => $metrics, - ], - ], - 'users usage' => [ - [ - 'usersTotal' => $metrics, - ], - [ - 'users' => $metrics, - ], - ], - 'storage usage' => [ - [ - 'filesStorage' => $metrics, - ], - [ - 'storage' => $metrics, - ], - ], - 'buckets usage' => [ - [ - 'bucketsTotal' => $metrics, - ], - [ - 'buckets' => $metrics, - ], - ], - ]; - } - - /** - * @dataProvider usageProjectProvider - */ - public function testUsageProject(array $content, array $expected): void - { - $model = Response::MODEL_USAGE_PROJECT; - - $result = $this->filter->parse($content, $model); - - $this->assertEquals($expected, $result); - } - - public function usageStorageProvider(): array - { - $metrics = [ - [ - 'value' => 123, - 'date' => Model::TYPE_DATETIME_EXAMPLE, - ] - ]; - return [ - 'bucketsCount usage' => [ - [ - 'bucketsTotal' => $metrics, - ], - [ - 'bucketsCount' => $metrics, - 'bucketsCreate' => [], - 'bucketsRead' => [], - 'bucketsUpdate' => [], - 'bucketsDelete' => [], - 'filesCreate' => [], - 'filesRead' => [], - 'filesUpdate' => [], - 'filesDelete' => [], - ], - ], - 'filesCount usage' => [ - [ - 'filesTotal' => $metrics, - ], - [ - 'filesCount' => $metrics, - 'bucketsCreate' => [], - 'bucketsRead' => [], - 'bucketsUpdate' => [], - 'bucketsDelete' => [], - 'filesCreate' => [], - 'filesRead' => [], - 'filesUpdate' => [], - 'filesDelete' => [], - ], - ], - 'storage usage' => [ - [ - 'filesStorage' => $metrics, - ], - [ - 'storage' => $metrics, - 'bucketsCreate' => [], - 'bucketsRead' => [], - 'bucketsUpdate' => [], - 'bucketsDelete' => [], - 'filesCreate' => [], - 'filesRead' => [], - 'filesUpdate' => [], - 'filesDelete' => [], - ], - ], - ]; - } - - /** - * @dataProvider usageStorageProvider - */ - public function testUsageStorage(array $content, array $expected): void - { - $model = Response::MODEL_USAGE_STORAGE; - - $result = $this->filter->parse($content, $model); - - $this->assertEquals($expected, $result); - } - - public function usageUsersProvider(): array - { - $metrics = [ - [ - 'value' => 123, - 'date' => Model::TYPE_DATETIME_EXAMPLE, - ] - ]; - return [ - 'usersCount usage' => [ - [ - 'usersTotal' => $metrics, - ], - [ - 'usersCount' => $metrics, - 'usersCreate' => [], - 'usersRead' => [], - 'usersUpdate' => [], - 'usersDelete' => [], - 'sessionsProviderCreate' => [], - 'sessionsDelete' => [], - ], - ], - 'sessionsCreate usage' => [ - [ - 'sessionsTotal' => $metrics, - ], - [ - 'sessionsCreate' => $metrics, - 'usersCreate' => [], - 'usersRead' => [], - 'usersUpdate' => [], - 'usersDelete' => [], - 'sessionsProviderCreate' => [], - 'sessionsDelete' => [], - ], - ], - ]; - } - - /** - * @dataProvider usageUsersProvider - */ - public function testUsageUsers(array $content, array $expected): void - { - $model = Response::MODEL_USAGE_USERS; - - $result = $this->filter->parse($content, $model); - - $this->assertEquals($expected, $result); - } - - public function usageVariableProvider(): array - { - return [ - 'functionId' => [ - [ - 'resourceId' => '5e5ea5c16897e', - ], - [ - 'functionId' => '5e5ea5c16897e', - ], - ], - ]; - } - /** * @dataProvider usageVariableProvider */