Recheck keys and update subscribers limit

[MAILPOET-2396]
This commit is contained in:
Amine Ben hammou
2019-12-13 18:48:55 +01:00
committed by Jack Kitterhing
parent 55f8626493
commit fa961d27b8
3 changed files with 45 additions and 12 deletions

View File

@ -12,9 +12,15 @@ const SubscribersLimitNotice = () => {
const upgradeLink = hasKey
? 'https://account.mailpoet.com/upgrade'
: `https://account.mailpoet.com/?s=${window.mailpoet_subscribers_count + 1}`;
const refreshSubscribers = () => {
console.log('Refresh subscribers ...');
const refreshSubscribers = async () => {
await MailPoet.Ajax.post({
api_version: window.mailpoet_api_version,
endpoint: 'services',
action: 'recheckKeys',
});
window.location.reload();
};
return (
<Notice type="error" timeout={false} closable={false}>
<h3>{title}</h3>
@ -33,13 +39,16 @@ const SubscribersLimitNotice = () => {
{MailPoet.I18n.t('upgradeNow')}
</a>
{hasKey && (
<>
{' '}
<button
type="button"
className="button button-primary"
className="button"
onClick={refreshSubscribers}
>
{MailPoet.I18n.t('refreshMySubscribers')}
</button>
</>
)}
</p>
</Notice>

View File

@ -7,6 +7,8 @@ use MailPoet\API\JSON\Endpoint as APIEndpoint;
use MailPoet\API\JSON\Error as APIError;
use MailPoet\Config\AccessControl;
use MailPoet\Config\Installer;
use MailPoet\Cron\Workers\KeyCheck\PremiumKeyCheck;
use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck;
use MailPoet\Services\Bridge;
use MailPoet\Services\SPFCheck;
use MailPoet\Settings\SettingsController;
@ -29,15 +31,23 @@ class Services extends APIEndpoint {
/** @var DateTime */
public $date_time;
/** @var SendingServiceKeyCheck */
private $mss_worker;
/** @var PremiumKeyCheck */
private $premium_worker;
public $permissions = [
'global' => AccessControl::PERMISSION_MANAGE_SETTINGS,
];
public function __construct(Bridge $bridge, SettingsController $settings, AnalyticsHelper $analytics, SPFCheck $spf_check) {
public function __construct(Bridge $bridge, SettingsController $settings, AnalyticsHelper $analytics, SPFCheck $spf_check, SendingServiceKeyCheck $mss_worker, PremiumKeyCheck $premium_worker) {
$this->bridge = $bridge;
$this->settings = $settings;
$this->analytics = $analytics;
$this->spf_check = $spf_check;
$this->mss_worker = $mss_worker;
$this->premium_worker = $premium_worker;
$this->date_time = new DateTime();
}
@ -179,6 +189,14 @@ class Services extends APIEndpoint {
return $this->errorResponse([APIError::BAD_REQUEST => $error]);
}
public function recheckKeys() {
$this->mss_worker->init();
$this->mss_worker->checkKey();
$this->premium_worker->init();
$this->premium_worker->checkKey();
return $this->successResponse();
}
private function getErrorDescriptionByCode($code) {
switch ($code) {
case Bridge::CHECK_ERROR_UNAVAILABLE:

View File

@ -8,6 +8,8 @@ use MailPoet\Analytics\Analytics;
use MailPoet\API\JSON\Response as APIResponse;
use MailPoet\API\JSON\v1\Services;
use MailPoet\Config\Installer;
use MailPoet\Cron\Workers\KeyCheck\PremiumKeyCheck;
use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck;
use MailPoet\Services\Bridge;
use MailPoet\Services\SPFCheck;
use MailPoet\Settings\SettingsController;
@ -404,7 +406,9 @@ class ServicesTest extends \MailPoetTest {
$this->di_container->get(Bridge::class),
$this->di_container->get(SettingsController::class),
$this->di_container->get(Analytics::class),
$spf_check
$spf_check,
$this->di_container->get(SendingServiceKeyCheck::class),
$this->di_container->get(PremiumKeyCheck::class)
);
}
@ -413,7 +417,9 @@ class ServicesTest extends \MailPoetTest {
$bridge,
$this->di_container->get(SettingsController::class),
$this->di_container->get(Analytics::class),
$this->di_container->get(SPFCheck::class)
$this->di_container->get(SPFCheck::class),
$this->di_container->get(SendingServiceKeyCheck::class),
$this->di_container->get(PremiumKeyCheck::class)
);
}
}