Pause sending when pending approval, resume when not anymore
[MAILPOET-2806]
This commit is contained in:
@ -7,8 +7,10 @@ use MailPoet\API\JSON\Endpoint as APIEndpoint;
|
||||
use MailPoet\API\JSON\Error as APIError;
|
||||
use MailPoet\Config\AccessControl;
|
||||
use MailPoet\Config\Installer;
|
||||
use MailPoet\Config\ServicesChecker;
|
||||
use MailPoet\Cron\Workers\KeyCheck\PremiumKeyCheck;
|
||||
use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck;
|
||||
use MailPoet\Mailer\MailerLog;
|
||||
use MailPoet\Services\Bridge;
|
||||
use MailPoet\Services\SPFCheck;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
@ -37,11 +39,22 @@ class Services extends APIEndpoint {
|
||||
/** @var PremiumKeyCheck */
|
||||
private $premiumWorker;
|
||||
|
||||
/** @var ServicesChecker */
|
||||
private $servicesChecker;
|
||||
|
||||
public $permissions = [
|
||||
'global' => AccessControl::PERMISSION_MANAGE_SETTINGS,
|
||||
];
|
||||
|
||||
public function __construct(Bridge $bridge, SettingsController $settings, AnalyticsHelper $analytics, SPFCheck $spfCheck, SendingServiceKeyCheck $mssWorker, PremiumKeyCheck $premiumWorker) {
|
||||
public function __construct(
|
||||
Bridge $bridge,
|
||||
SettingsController $settings,
|
||||
AnalyticsHelper $analytics,
|
||||
SPFCheck $spfCheck,
|
||||
SendingServiceKeyCheck $mssWorker,
|
||||
PremiumKeyCheck $premiumWorker,
|
||||
ServicesChecker $servicesChecker
|
||||
) {
|
||||
$this->bridge = $bridge;
|
||||
$this->settings = $settings;
|
||||
$this->analytics = $analytics;
|
||||
@ -49,6 +62,7 @@ class Services extends APIEndpoint {
|
||||
$this->mssWorker = $mssWorker;
|
||||
$this->premiumWorker = $premiumWorker;
|
||||
$this->dateTime = new DateTime();
|
||||
$this->servicesChecker = $servicesChecker;
|
||||
}
|
||||
|
||||
public function checkSPFRecord($data = []) {
|
||||
@ -76,6 +90,8 @@ class Services extends APIEndpoint {
|
||||
]);
|
||||
}
|
||||
|
||||
$wasPendingApproval = $this->servicesChecker->isMailPoetAPIKeyPendingApproval();
|
||||
|
||||
try {
|
||||
$result = $this->bridge->checkMSSKey($key);
|
||||
$this->bridge->storeMSSKeyAndState($key, $result);
|
||||
@ -85,6 +101,13 @@ class Services extends APIEndpoint {
|
||||
]);
|
||||
}
|
||||
|
||||
// pause sending when key is pending approval, resume when not pending anymore
|
||||
if ($this->servicesChecker->isMailPoetAPIKeyPendingApproval()) {
|
||||
MailerLog::pauseSending(MailerLog::getMailerLog());
|
||||
} elseif ($wasPendingApproval) {
|
||||
MailerLog::resumeSending();
|
||||
}
|
||||
|
||||
$state = !empty($result['state']) ? $result['state'] : null;
|
||||
|
||||
$successMessage = null;
|
||||
|
Reference in New Issue
Block a user