From 81ddc99f7b88e6223ef6d29f1c13b9958499e78a Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Fri, 16 Sep 2022 11:54:59 +0200 Subject: [PATCH] Improve mail events code quality --- app/workers/builds.php | 2 ++ app/workers/certificates.php | 27 ++++++++++++++------------- app/workers/mails.php | 13 +++++++------ 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/app/workers/builds.php b/app/workers/builds.php index 3d78aeb654..b2fac6710d 100644 --- a/app/workers/builds.php +++ b/app/workers/builds.php @@ -109,6 +109,8 @@ class BuildsV1 extends Worker /** Trigger Webhook */ $deploymentModel = new Deployment(); + + // TODO: Use Webhook() event here. If doesnt exist, create class for it $deploymentUpdate = new Event(Event::WEBHOOK_QUEUE_NAME, Event::WEBHOOK_CLASS_NAME); $deploymentUpdate ->setProject($project) diff --git a/app/workers/certificates.php b/app/workers/certificates.php index f932ba4bc3..e7885bc669 100644 --- a/app/workers/certificates.php +++ b/app/workers/certificates.php @@ -1,6 +1,7 @@ 'console', - 'project' => 'console', - 'name' => 'Appwrite Administrator', - 'recipient' => App::getEnv('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS'), - 'url' => 'https://' . $domain, - 'locale' => App::getEnv('_APP_LOCALE', 'en'), - 'type' => MAIL_TYPE_CERTIFICATE, - - 'domain' => $domain, - 'error' => $errorMessage, - 'attempt' => $attempt - ]); + $mail = new Mail(); + $mail + ->setType(MAIL_TYPE_CERTIFICATE) + ->setRecipient(App::getEnv('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS')) + ->setUrl('https://' . $domain) + ->setLocale(App::getEnv('_APP_LOCALE', 'en')) + ->setName('Appwrite Administrator') + ->setPayload([ + 'domain' => $domain, + 'error' => $errorMessage, + 'attempt' => $attempt + ]) + ->trigger(); } /** diff --git a/app/workers/mails.php b/app/workers/mails.php index 9b81353f05..90e9e9a660 100644 --- a/app/workers/mails.php +++ b/app/workers/mails.php @@ -32,9 +32,10 @@ class MailsV1 extends Worker return; } - $project = new Document($this->args['project']); + $project = new Document($this->args['project'] ?? []); $user = new Document($this->args['user'] ?? []); $team = new Document($this->args['team'] ?? []); + $payload = $this->args['payload'] ?? []; $recipient = $this->args['recipient']; $url = $this->args['url']; @@ -42,20 +43,20 @@ class MailsV1 extends Worker $type = $this->args['type']; $prefix = $this->getPrefix($type); $locale = new Locale($this->args['locale']); - $projectName = $project->getAttribute('name', '[APP-NAME]'); + $projectName = $project->isEmpty() ? 'Console' : $project->getAttribute('name', '[APP-NAME]'); if (!$this->doesLocaleExist($locale, $prefix)) { $locale->setDefault('en'); } - $from = $project->getId() === 'console' ? '' : \sprintf($locale->getText('emails.sender'), $projectName); + $from = $project->isEmpty() || $project->getId() === 'console' ? '' : \sprintf($locale->getText('emails.sender'), $projectName); $body = Template::fromFile(__DIR__ . '/../config/locale/templates/email-base.tpl'); $subject = ''; switch ($type) { case MAIL_TYPE_CERTIFICATE: - $domain = $this->args['domain']; - $error = $this->args['error']; - $attempt = $this->args['attempt']; + $domain = $payload['domain']; + $error = $payload['error']; + $attempt = $payload['attempt']; $subject = \sprintf($locale->getText("$prefix.subject"), $domain); $body->setParam('{{domain}}', $domain);