Use subscriber count reporter in cron for reporting stats
[MAILPOET-5191]
This commit is contained in:
committed by
Veljko V
parent
d9bec53efa
commit
ab19ef92d5
@@ -5,15 +5,15 @@ namespace MailPoet\Cron\Workers;
|
|||||||
use MailPoet\Config\ServicesChecker;
|
use MailPoet\Config\ServicesChecker;
|
||||||
use MailPoet\Cron\CronWorkerScheduler;
|
use MailPoet\Cron\CronWorkerScheduler;
|
||||||
use MailPoet\Entities\ScheduledTaskEntity;
|
use MailPoet\Entities\ScheduledTaskEntity;
|
||||||
use MailPoet\Services\Bridge;
|
use MailPoet\Services\SubscribersCountReporter;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use MailPoetVendor\Carbon\Carbon;
|
use MailPoetVendor\Carbon\Carbon;
|
||||||
|
|
||||||
class SubscribersStatsReport extends SimpleWorker {
|
class SubscribersStatsReport extends SimpleWorker {
|
||||||
const TASK_TYPE = 'subscribers_stats_report';
|
const TASK_TYPE = 'subscribers_stats_report';
|
||||||
|
|
||||||
/** @var Bridge */
|
/** @var SubscribersCountReporter */
|
||||||
private $bridge;
|
private $subscribersCountReporter;
|
||||||
|
|
||||||
/** @var ServicesChecker */
|
/** @var ServicesChecker */
|
||||||
private $serviceChecker;
|
private $serviceChecker;
|
||||||
@@ -22,13 +22,13 @@ class SubscribersStatsReport extends SimpleWorker {
|
|||||||
private $workerScheduler;
|
private $workerScheduler;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
Bridge $bridge,
|
SubscribersCountReporter $subscribersCountReporter,
|
||||||
ServicesChecker $servicesChecker,
|
ServicesChecker $servicesChecker,
|
||||||
CronWorkerScheduler $workerScheduler,
|
CronWorkerScheduler $workerScheduler,
|
||||||
WPFunctions $wp
|
WPFunctions $wp
|
||||||
) {
|
) {
|
||||||
parent::__construct($wp);
|
parent::__construct($wp);
|
||||||
$this->bridge = $bridge;
|
$this->subscribersCountReporter = $subscribersCountReporter;
|
||||||
$this->serviceChecker = $servicesChecker;
|
$this->serviceChecker = $servicesChecker;
|
||||||
$this->workerScheduler = $workerScheduler;
|
$this->workerScheduler = $workerScheduler;
|
||||||
}
|
}
|
||||||
@@ -42,7 +42,7 @@ class SubscribersStatsReport extends SimpleWorker {
|
|||||||
if ($key === null) {
|
if ($key === null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$result = $this->bridge->updateSubscriberCount($key);
|
$result = $this->subscribersCountReporter->report($key);
|
||||||
// We have a valid key, but request failed
|
// We have a valid key, but request failed
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
$this->workerScheduler->rescheduleProgressively($task);
|
$this->workerScheduler->rescheduleProgressively($task);
|
||||||
|
@@ -5,7 +5,7 @@ namespace MailPoet\Cron\Workers;
|
|||||||
use MailPoet\Config\ServicesChecker;
|
use MailPoet\Config\ServicesChecker;
|
||||||
use MailPoet\Cron\CronWorkerScheduler;
|
use MailPoet\Cron\CronWorkerScheduler;
|
||||||
use MailPoet\Entities\ScheduledTaskEntity;
|
use MailPoet\Entities\ScheduledTaskEntity;
|
||||||
use MailPoet\Services\Bridge;
|
use MailPoet\Services\SubscribersCountReporter;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use MailPoetVendor\Carbon\Carbon;
|
use MailPoetVendor\Carbon\Carbon;
|
||||||
use PHPUnit\Framework\MockObject\MockObject;
|
use PHPUnit\Framework\MockObject\MockObject;
|
||||||
@@ -20,8 +20,8 @@ class SubscribersStatsReportTest extends \MailPoetTest {
|
|||||||
/** @var SubscribersStatsReport */
|
/** @var SubscribersStatsReport */
|
||||||
private $worker;
|
private $worker;
|
||||||
|
|
||||||
/** @var Bridge & MockObject */
|
/** @var SubscribersCountReporter & MockObject */
|
||||||
private $bridgeMock;
|
private $countReporerMock;
|
||||||
|
|
||||||
/** @var CronWorkerScheduler & MockObject */
|
/** @var CronWorkerScheduler & MockObject */
|
||||||
private $schedulerMock;
|
private $schedulerMock;
|
||||||
@@ -34,12 +34,12 @@ class SubscribersStatsReportTest extends \MailPoetTest {
|
|||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
$this->bridgeMock = $this->createMock(Bridge::class);
|
$this->countReporerMock = $this->createMock(SubscribersCountReporter::class);
|
||||||
$this->schedulerMock = $this->createMock(CronWorkerScheduler::class);
|
$this->schedulerMock = $this->createMock(CronWorkerScheduler::class);
|
||||||
$this->servicesCheckerMock = $this->createMock(ServicesChecker::class);
|
$this->servicesCheckerMock = $this->createMock(ServicesChecker::class);
|
||||||
$this->wpMock = $this->createMock(WPFunctions::class);
|
$this->wpMock = $this->createMock(WPFunctions::class);
|
||||||
$this->worker = new SubscribersStatsReport(
|
$this->worker = new SubscribersStatsReport(
|
||||||
$this->bridgeMock,
|
$this->countReporerMock,
|
||||||
$this->servicesCheckerMock,
|
$this->servicesCheckerMock,
|
||||||
$this->schedulerMock,
|
$this->schedulerMock,
|
||||||
$this->wpMock
|
$this->wpMock
|
||||||
@@ -66,8 +66,8 @@ class SubscribersStatsReportTest extends \MailPoetTest {
|
|||||||
$this->servicesCheckerMock->expects($this->once())
|
$this->servicesCheckerMock->expects($this->once())
|
||||||
->method('getValidAccountKey')
|
->method('getValidAccountKey')
|
||||||
->willReturn('a_valid_key');
|
->willReturn('a_valid_key');
|
||||||
$this->bridgeMock->expects($this->once())
|
$this->countReporerMock->expects($this->once())
|
||||||
->method('updateSubscriberCount')
|
->method('report')
|
||||||
->willReturn(true);
|
->willReturn(true);
|
||||||
expect($this->worker->processTaskStrategy($task, $timer))->true();
|
expect($this->worker->processTaskStrategy($task, $timer))->true();
|
||||||
}
|
}
|
||||||
@@ -78,8 +78,8 @@ class SubscribersStatsReportTest extends \MailPoetTest {
|
|||||||
$this->servicesCheckerMock->expects($this->once())
|
$this->servicesCheckerMock->expects($this->once())
|
||||||
->method('getValidAccountKey')
|
->method('getValidAccountKey')
|
||||||
->willReturn(null);
|
->willReturn(null);
|
||||||
$this->bridgeMock->expects($this->never())
|
$this->countReporerMock->expects($this->never())
|
||||||
->method('updateSubscriberCount');
|
->method('report');
|
||||||
expect($this->worker->processTaskStrategy($task, $timer))->false();
|
expect($this->worker->processTaskStrategy($task, $timer))->false();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,8 +89,8 @@ class SubscribersStatsReportTest extends \MailPoetTest {
|
|||||||
$this->servicesCheckerMock->expects($this->once())
|
$this->servicesCheckerMock->expects($this->once())
|
||||||
->method('getValidAccountKey')
|
->method('getValidAccountKey')
|
||||||
->willReturn('a_valid_key');
|
->willReturn('a_valid_key');
|
||||||
$this->bridgeMock->expects($this->once())
|
$this->countReporerMock->expects($this->once())
|
||||||
->method('updateSubscriberCount')
|
->method('report')
|
||||||
->willReturn(false);
|
->willReturn(false);
|
||||||
$this->schedulerMock->expects($this->once())
|
$this->schedulerMock->expects($this->once())
|
||||||
->method('rescheduleProgressively');
|
->method('rescheduleProgressively');
|
||||||
|
Reference in New Issue
Block a user