refactor module namings

This commit is contained in:
Damodar Lohani 2024-11-17 07:01:20 +00:00
parent 179684e8b2
commit 10dab10cc5
10 changed files with 101 additions and 29 deletions

View file

@ -11,6 +11,6 @@ class Appwrite extends Platform
public function __construct() public function __construct()
{ {
parent::__construct(new Core()); parent::__construct(new Core());
$this->addModule(new DevelopmentKeys()); $this->addModule(new DevelopmentKeys\Module());
} }
} }

View file

@ -1,6 +1,6 @@
<?php <?php
namespace Appwrite\Platform\Modules\DevelopmentKeys\Http; namespace Appwrite\Platform\Modules\DevelopmentKeys\Http\DevelopmentKeys;
use Appwrite\Extend\Exception; use Appwrite\Extend\Exception;
use Appwrite\Utopia\Response; use Appwrite\Utopia\Response;
@ -15,12 +15,12 @@ use Utopia\Platform\Action;
use Utopia\Platform\Scope\HTTP; use Utopia\Platform\Scope\HTTP;
use Utopia\Validator\Text; use Utopia\Validator\Text;
class Create extends Action class CreateKey extends Action
{ {
use HTTP; use HTTP;
public static function getName() public static function getName()
{ {
return 'create'; return 'createKey';
} }
public function __construct() public function __construct()

View file

@ -1,6 +1,6 @@
<?php <?php
namespace Appwrite\Platform\Modules\DevelopmentKeys\Http; namespace Appwrite\Platform\Modules\DevelopmentKeys\Http\DevelopmentKeys;
use Appwrite\Extend\Exception; use Appwrite\Extend\Exception;
use Appwrite\Utopia\Response; use Appwrite\Utopia\Response;
@ -10,12 +10,12 @@ use Utopia\Database\Validator\UID;
use Utopia\Platform\Action; use Utopia\Platform\Action;
use Utopia\Platform\Scope\HTTP; use Utopia\Platform\Scope\HTTP;
class Delete extends Action class DeleteKey extends Action
{ {
use HTTP; use HTTP;
public static function getName() public static function getName()
{ {
return 'delete'; return 'deleteKey';
} }
public function __construct() public function __construct()

View file

@ -1,6 +1,6 @@
<?php <?php
namespace Appwrite\Platform\Modules\DevelopmentKeys\Http; namespace Appwrite\Platform\Modules\DevelopmentKeys\Http\DevelopmentKeys;
use Appwrite\Extend\Exception; use Appwrite\Extend\Exception;
use Appwrite\Utopia\Response; use Appwrite\Utopia\Response;
@ -10,12 +10,12 @@ use Utopia\Database\Validator\UID;
use Utopia\Platform\Action; use Utopia\Platform\Action;
use Utopia\Platform\Scope\HTTP; use Utopia\Platform\Scope\HTTP;
class Get extends Action class GetKey extends Action
{ {
use HTTP; use HTTP;
public static function getName() public static function getName()
{ {
return 'get'; return 'getKey';
} }
public function __construct() public function __construct()

View file

@ -1,6 +1,6 @@
<?php <?php
namespace Appwrite\Platform\Modules\DevelopmentKeys\Http; namespace Appwrite\Platform\Modules\DevelopmentKeys\Http\DevelopmentKeys;
use Appwrite\Extend\Exception; use Appwrite\Extend\Exception;
use Appwrite\Utopia\Response; use Appwrite\Utopia\Response;
@ -11,12 +11,12 @@ use Utopia\Database\Validator\UID;
use Utopia\Platform\Action; use Utopia\Platform\Action;
use Utopia\Platform\Scope\HTTP; use Utopia\Platform\Scope\HTTP;
class XList extends Action class ListKeys extends Action
{ {
use HTTP; use HTTP;
public static function getName() public static function getName()
{ {
return 'list'; return 'listKeys';
} }
public function __construct() public function __construct()

View file

@ -12,12 +12,12 @@ use Utopia\Platform\Action;
use Utopia\Platform\Scope\HTTP; use Utopia\Platform\Scope\HTTP;
use Utopia\Validator\Text; use Utopia\Validator\Text;
class Update extends Action class UpdateKey extends Action
{ {
use HTTP; use HTTP;
public static function getName() public static function getName()
{ {
return 'update'; return 'updateKeys';
} }
public function __construct() public function __construct()

View file

@ -0,0 +1,72 @@
<?php
namespace Appwrite\Platform\Modules\DevelopmentKeys\Http\DevelopmentKeys;
use Appwrite\Extend\Exception;
use Appwrite\Utopia\Response;
use Utopia\Database\Database;
use Utopia\Database\Query;
use Utopia\Database\Validator\Datetime as DatetimeValidator;
use Utopia\Database\Validator\UID;
use Utopia\Platform\Action;
use Utopia\Platform\Scope\HTTP;
use Utopia\Validator\Text;
class UpdateKey extends Action
{
use HTTP;
public static function getName()
{
return 'updateKey';
}
public function __construct()
{
$this->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);
}
}

View file

@ -1,11 +1,11 @@
<?php <?php
namespace Appwrite\Platform\Modules; namespace Appwrite\Platform\Modules\DevelopmentKeys;
use Appwrite\Platform\Modules\DevelopmentKeys\Services\Http; use Appwrite\Platform\Modules\DevelopmentKeys\Services\Http;
use Utopia\Platform\Module; use Utopia\Platform\Module as Base;
class DevelopmentKeys extends Module class Module extends Base
{ {
public function __construct() public function __construct()
{ {

View file

@ -2,11 +2,11 @@
namespace Appwrite\Platform\Modules\DevelopmentKeys\Services; namespace Appwrite\Platform\Modules\DevelopmentKeys\Services;
use Appwrite\Platform\Modules\DevelopmentKeys\Http\Create; use Appwrite\Platform\Modules\DevelopmentKeys\Http\DevelopmentKeys\CreateKey;
use Appwrite\Platform\Modules\DevelopmentKeys\Http\Delete; use Appwrite\Platform\Modules\DevelopmentKeys\Http\DevelopmentKeys\DeleteKey;
use Appwrite\Platform\Modules\DevelopmentKeys\Http\Get; use Appwrite\Platform\Modules\DevelopmentKeys\Http\DevelopmentKeys\GetKey;
use Appwrite\Platform\Modules\DevelopmentKeys\Http\Update; use Appwrite\Platform\Modules\DevelopmentKeys\Http\DevelopmentKeys\ListKeys;
use Appwrite\Platform\Modules\DevelopmentKeys\Http\XList; use Appwrite\Platform\Modules\DevelopmentKeys\Http\DevelopmentKeys\UpdateKey;
use Utopia\Platform\Service; use Utopia\Platform\Service;
class Http extends Service class Http extends Service
@ -14,10 +14,10 @@ class Http extends Service
public function __construct() public function __construct()
{ {
$this->type = Service::TYPE_HTTP; $this->type = Service::TYPE_HTTP;
$this->addAction(Create::getName(), new Create()); $this->addAction(CreateKey::getName(), new CreateKey());
$this->addAction(Update::getName(), new Update()); $this->addAction(UpdateKey::getName(), new UpdateKey());
$this->addAction(Get::getName(), new Get()); $this->addAction(GetKey::getName(), new GetKey());
$this->addAction(XList::getName(), new XList()); $this->addAction(ListKeys::getName(), new ListKeys());
$this->addAction(Delete::getName(), new Delete()); $this->addAction(DeleteKey::getName(), new DeleteKey());
} }
} }

View file

@ -131,7 +131,7 @@ trait ProjectsDevelopmentKeys
$developmentKey = $response['body']['secret']; $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', [ $res = $this->client->call(Client::METHOD_POST, '/account/sessions/email', [
'content-type' => 'application/json', 'content-type' => 'application/json',
'x-appwrite-project' => $id, 'x-appwrite-project' => $id,