From b10c30a7b19d1b1591b9374c5c19e33751f132e6 Mon Sep 17 00:00:00 2001 From: Rostislav Wolny Date: Thu, 24 Mar 2022 14:53:17 +0100 Subject: [PATCH] Add basic interface for MailerMethod [MAILPOET-4115] --- mailpoet/lib/Mailer/Methods/AmazonSES.php | 4 ++-- mailpoet/lib/Mailer/Methods/MailPoet.php | 4 ++-- mailpoet/lib/Mailer/Methods/MailerMethod.php | 7 +++++++ mailpoet/lib/Mailer/Methods/PHPMail.php | 4 ++-- mailpoet/lib/Mailer/Methods/SMTP.php | 4 ++-- mailpoet/lib/Mailer/Methods/SendGrid.php | 4 ++-- .../Cron/Workers/SendingQueue/Tasks/MailerTest.php | 4 ++-- 7 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 mailpoet/lib/Mailer/Methods/MailerMethod.php diff --git a/mailpoet/lib/Mailer/Methods/AmazonSES.php b/mailpoet/lib/Mailer/Methods/AmazonSES.php index 63606dc8a8..6dcd91bce9 100644 --- a/mailpoet/lib/Mailer/Methods/AmazonSES.php +++ b/mailpoet/lib/Mailer/Methods/AmazonSES.php @@ -8,7 +8,7 @@ use MailPoet\Mailer\Methods\ErrorMappers\AmazonSESMapper; use MailPoet\WP\Functions as WPFunctions; use MailPoetVendor\Swift_Message; -class AmazonSES { +class AmazonSES implements MailerMethod { public $awsAccessKey; public $awsSecretKey; public $awsRegion; @@ -93,7 +93,7 @@ class AmazonSES { $this->blacklist = new BlacklistCheck(); } - public function send($newsletter, $subscriber, $extraParams = []) { + public function send($newsletter, $subscriber, $extraParams = []): array { if ($this->blacklist->isBlacklisted($subscriber)) { $error = $this->errorMapper->getBlacklistError($subscriber); return Mailer::formatMailerErrorResult($error); diff --git a/mailpoet/lib/Mailer/Methods/MailPoet.php b/mailpoet/lib/Mailer/Methods/MailPoet.php index 604b88a9fc..99cf0e9c8a 100644 --- a/mailpoet/lib/Mailer/Methods/MailPoet.php +++ b/mailpoet/lib/Mailer/Methods/MailPoet.php @@ -11,7 +11,7 @@ use MailPoet\Services\AuthorizedEmailsController; use MailPoet\Services\Bridge; use MailPoet\Services\Bridge\API; -class MailPoet { +class MailPoet implements MailerMethod { public $api; public $sender; public $replyTo; @@ -42,7 +42,7 @@ class MailPoet { $this->blacklist = new BlacklistCheck(); } - public function send($newsletter, $subscriber, $extraParams = []) { + public function send($newsletter, $subscriber, $extraParams = []): array { if ($this->servicesChecker->isMailPoetAPIKeyValid() === false) { return Mailer::formatMailerErrorResult($this->errorMapper->getInvalidApiKeyError()); } diff --git a/mailpoet/lib/Mailer/Methods/MailerMethod.php b/mailpoet/lib/Mailer/Methods/MailerMethod.php new file mode 100644 index 0000000000..8c30cdace7 --- /dev/null +++ b/mailpoet/lib/Mailer/Methods/MailerMethod.php @@ -0,0 +1,7 @@ +blacklist = new BlacklistCheck(); } - public function send($newsletter, $subscriber, $extraParams = []) { + public function send($newsletter, $subscriber, $extraParams = []): array { if ($this->blacklist->isBlacklisted($subscriber)) { $error = $this->errorMapper->getBlacklistError($subscriber); return Mailer::formatMailerErrorResult($error); diff --git a/mailpoet/lib/Mailer/Methods/SMTP.php b/mailpoet/lib/Mailer/Methods/SMTP.php index 00f6baa996..bba5ed188f 100644 --- a/mailpoet/lib/Mailer/Methods/SMTP.php +++ b/mailpoet/lib/Mailer/Methods/SMTP.php @@ -12,7 +12,7 @@ use MailPoetVendor\Swift_Plugins_LoggerPlugin; use MailPoetVendor\Swift_Plugins_Loggers_ArrayLogger; use MailPoetVendor\Swift_SmtpTransport; -class SMTP { +class SMTP implements MailerMethod { public $host; public $port; public $authentication; @@ -65,7 +65,7 @@ class SMTP { $this->blacklist = new BlacklistCheck(); } - public function send($newsletter, $subscriber, $extraParams = []) { + public function send($newsletter, $subscriber, $extraParams = []): array { if ($this->blacklist->isBlacklisted($subscriber)) { $error = $this->errorMapper->getBlacklistError($subscriber); return Mailer::formatMailerErrorResult($error); diff --git a/mailpoet/lib/Mailer/Methods/SendGrid.php b/mailpoet/lib/Mailer/Methods/SendGrid.php index 49b6743687..ee8db47661 100644 --- a/mailpoet/lib/Mailer/Methods/SendGrid.php +++ b/mailpoet/lib/Mailer/Methods/SendGrid.php @@ -7,7 +7,7 @@ use MailPoet\Mailer\Methods\Common\BlacklistCheck; use MailPoet\Mailer\Methods\ErrorMappers\SendGridMapper; use MailPoet\WP\Functions as WPFunctions; -class SendGrid { +class SendGrid implements MailerMethod { public $url = 'https://api.sendgrid.com/api/mail.send.json'; public $apiKey; public $sender; @@ -35,7 +35,7 @@ class SendGrid { $this->blacklist = new BlacklistCheck(); } - public function send($newsletter, $subscriber, $extraParams = []) { + public function send($newsletter, $subscriber, $extraParams = []): array { if ($this->blacklist->isBlacklisted($subscriber)) { $error = $this->errorMapper->getBlacklistError($subscriber); return Mailer::formatMailerErrorResult($error); diff --git a/mailpoet/tests/integration/Cron/Workers/SendingQueue/Tasks/MailerTest.php b/mailpoet/tests/integration/Cron/Workers/SendingQueue/Tasks/MailerTest.php index 9c6c51373f..a4eaa99532 100644 --- a/mailpoet/tests/integration/Cron/Workers/SendingQueue/Tasks/MailerTest.php +++ b/mailpoet/tests/integration/Cron/Workers/SendingQueue/Tasks/MailerTest.php @@ -117,7 +117,7 @@ class MailerTest extends \MailPoetTest { 'mailerInstance' => Stub::make( $phpMailClass, ['send' => Expected::exactly(1, function() { - return true; + return ['response' => true]; })], $this ), @@ -130,7 +130,7 @@ class MailerTest extends \MailPoetTest { expect($mailerTask->mailer->mailerInstance instanceof $phpMailClass) ->true(); // send method should return true - expect($mailerTask->send('Newsletter', 'Subscriber'))->true(); + expect($mailerTask->send('Newsletter', 'Subscriber'))->equals(['response' => true]); } public function _after() {