From 10dab10cc5e4e8622a02c0097afdd94d1fa0857b Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Sun, 17 Nov 2024 07:01:20 +0000 Subject: [PATCH] refactor module namings --- src/Appwrite/Platform/Appwrite.php | 2 +- .../CreateKey.php} | 6 +- .../DeleteKey.php} | 6 +- .../{Get.php => DevelopmentKeys/GetKey.php} | 6 +- .../ListKeys.php} | 6 +- .../Http/{ => DevelopmentKeys}/Update.php | 4 +- .../Http/DevelopmentKeys/UpdateKey.php | 72 +++++++++++++++++++ .../Module.php} | 6 +- .../Modules/DevelopmentKeys/Services/Http.php | 20 +++--- .../Projects/ProjectsDevelopmentKeys.php | 2 +- 10 files changed, 101 insertions(+), 29 deletions(-) rename src/Appwrite/Platform/Modules/DevelopmentKeys/Http/{Create.php => DevelopmentKeys/CreateKey.php} (95%) rename src/Appwrite/Platform/Modules/DevelopmentKeys/Http/{Delete.php => DevelopmentKeys/DeleteKey.php} (93%) rename src/Appwrite/Platform/Modules/DevelopmentKeys/Http/{Get.php => DevelopmentKeys/GetKey.php} (93%) rename src/Appwrite/Platform/Modules/DevelopmentKeys/Http/{XList.php => DevelopmentKeys/ListKeys.php} (93%) rename src/Appwrite/Platform/Modules/DevelopmentKeys/Http/{ => DevelopmentKeys}/Update.php (97%) create mode 100644 src/Appwrite/Platform/Modules/DevelopmentKeys/Http/DevelopmentKeys/UpdateKey.php rename src/Appwrite/Platform/Modules/{DevelopmentKeys.php => DevelopmentKeys/Module.php} (59%) diff --git a/src/Appwrite/Platform/Appwrite.php b/src/Appwrite/Platform/Appwrite.php index e1a27f1b0a..153b22c02c 100644 --- a/src/Appwrite/Platform/Appwrite.php +++ b/src/Appwrite/Platform/Appwrite.php @@ -11,6 +11,6 @@ class Appwrite extends Platform public function __construct() { parent::__construct(new Core()); - $this->addModule(new DevelopmentKeys()); + $this->addModule(new DevelopmentKeys\Module()); } } diff --git a/src/Appwrite/Platform/Modules/DevelopmentKeys/Http/Create.php b/src/Appwrite/Platform/Modules/DevelopmentKeys/Http/DevelopmentKeys/CreateKey.php similarity index 95% rename from src/Appwrite/Platform/Modules/DevelopmentKeys/Http/Create.php rename to src/Appwrite/Platform/Modules/DevelopmentKeys/Http/DevelopmentKeys/CreateKey.php index ec898cde7d..c6eee58adb 100644 --- a/src/Appwrite/Platform/Modules/DevelopmentKeys/Http/Create.php +++ b/src/Appwrite/Platform/Modules/DevelopmentKeys/Http/DevelopmentKeys/CreateKey.php @@ -1,6 +1,6 @@ setHttpMethod(Action::HTTP_REQUEST_METHOD_PUT) + ->setHttpPath('/v1/projects/:projectId/development-keys/:keyId') + ->desc('Update key') + ->groups(['api', 'projects']) + ->label('scope', 'projects.write') + ->label('sdk.auth', [APP_AUTH_TYPE_ADMIN]) + ->label('sdk.namespace', 'projects') + ->label('sdk.method', 'updateDevelopmentKey') + ->label('sdk.response.code', Response::STATUS_CODE_OK) + ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) + ->label('sdk.response.model', Response::MODEL_KEY) + ->param('projectId', '', new UID(), 'Project unique ID.') + ->param('keyId', '', new UID(), 'Key unique ID.') + ->param('name', null, new Text(128), 'Key name. Max length: 128 chars.') + ->param('expire', null, new DatetimeValidator(), 'Expiration time in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.', true) + ->inject('response') + ->inject('dbForConsole') + ->callback(fn ($projectId, $keyId, $name, $expire, $response, $dbForConsole) => $this->action($projectId, $keyId, $name, $expire, $response, $dbForConsole)); + } + public function action(string $projectId, string $keyId, string $name, ?string $expire, Response $response, Database $dbForConsole) + { + + $project = $dbForConsole->getDocument('projects', $projectId); + + if ($project->isEmpty()) { + throw new Exception(Exception::PROJECT_NOT_FOUND); + } + + $key = $dbForConsole->findOne('developmentKeys', [ + Query::equal('$id', [$keyId]), + Query::equal('projectInternalId', [$project->getInternalId()]), + ]); + + if ($key === false || $key->isEmpty()) { + throw new Exception(Exception::KEY_NOT_FOUND); + } + + $key + ->setAttribute('name', $name) + ->setAttribute('expire', $expire ?? $key->getAttribute('expire')); + + $dbForConsole->updateDocument('developmentKeys', $key->getId(), $key); + + $dbForConsole->purgeCachedDocument('projects', $project->getId()); + + $response->dynamic($key, Response::MODEL_KEY); + } +} diff --git a/src/Appwrite/Platform/Modules/DevelopmentKeys.php b/src/Appwrite/Platform/Modules/DevelopmentKeys/Module.php similarity index 59% rename from src/Appwrite/Platform/Modules/DevelopmentKeys.php rename to src/Appwrite/Platform/Modules/DevelopmentKeys/Module.php index c351ad92f1..299868cb57 100644 --- a/src/Appwrite/Platform/Modules/DevelopmentKeys.php +++ b/src/Appwrite/Platform/Modules/DevelopmentKeys/Module.php @@ -1,11 +1,11 @@ type = Service::TYPE_HTTP; - $this->addAction(Create::getName(), new Create()); - $this->addAction(Update::getName(), new Update()); - $this->addAction(Get::getName(), new Get()); - $this->addAction(XList::getName(), new XList()); - $this->addAction(Delete::getName(), new Delete()); + $this->addAction(CreateKey::getName(), new CreateKey()); + $this->addAction(UpdateKey::getName(), new UpdateKey()); + $this->addAction(GetKey::getName(), new GetKey()); + $this->addAction(ListKeys::getName(), new ListKeys()); + $this->addAction(DeleteKey::getName(), new DeleteKey()); } } diff --git a/tests/e2e/Services/Projects/ProjectsDevelopmentKeys.php b/tests/e2e/Services/Projects/ProjectsDevelopmentKeys.php index cbc677a7e1..f781aad6b2 100644 --- a/tests/e2e/Services/Projects/ProjectsDevelopmentKeys.php +++ b/tests/e2e/Services/Projects/ProjectsDevelopmentKeys.php @@ -131,7 +131,7 @@ trait ProjectsDevelopmentKeys $developmentKey = $response['body']['secret']; // - for($i = 0; $i < 11; $i++) { + for ($i = 0; $i < 11; $i++) { $res = $this->client->call(Client::METHOD_POST, '/account/sessions/email', [ 'content-type' => 'application/json', 'x-appwrite-project' => $id,