Replace Paris code with Doctrine in NewslettersResponseBuilder.php
[MAILPOET-4138]
This commit is contained in:
@@ -5,8 +5,8 @@ namespace MailPoet\API\JSON\ResponseBuilders;
|
||||
use MailPoet\Entities\NewsletterEntity;
|
||||
use MailPoet\Entities\SegmentEntity;
|
||||
use MailPoet\Entities\SendingQueueEntity;
|
||||
use MailPoet\Models\SendingQueue;
|
||||
use MailPoet\Newsletter\NewslettersRepository;
|
||||
use MailPoet\Newsletter\Sending\SendingQueuesRepository;
|
||||
use MailPoet\Newsletter\Statistics\NewsletterStatistics;
|
||||
use MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository;
|
||||
use MailPoet\Newsletter\Url as NewsletterUrl;
|
||||
@@ -35,16 +35,21 @@ class NewslettersResponseBuilder {
|
||||
/** @var NewsletterUrl */
|
||||
private $newsletterUrl;
|
||||
|
||||
/** @var SendingQueuesRepository */
|
||||
private $sendingQueuesRepository;
|
||||
|
||||
public function __construct(
|
||||
EntityManager $entityManager,
|
||||
NewslettersRepository $newslettersRepository,
|
||||
NewsletterStatisticsRepository $newslettersStatsRepository,
|
||||
NewsletterUrl $newsletterUrl
|
||||
NewsletterUrl $newsletterUrl,
|
||||
SendingQueuesRepository $sendingQueuesRepository
|
||||
) {
|
||||
$this->newslettersStatsRepository = $newslettersStatsRepository;
|
||||
$this->newslettersRepository = $newslettersRepository;
|
||||
$this->entityManager = $entityManager;
|
||||
$this->newsletterUrl = $newsletterUrl;
|
||||
$this->sendingQueuesRepository = $sendingQueuesRepository;
|
||||
}
|
||||
|
||||
public function build(NewsletterEntity $newsletter, $relations = []) {
|
||||
@@ -86,9 +91,10 @@ class NewslettersResponseBuilder {
|
||||
$data['children_count'] = $this->newslettersStatsRepository->getChildrenCount($newsletter);
|
||||
}
|
||||
if ($relation === self::RELATION_SCHEDULED) {
|
||||
$data['total_scheduled'] = (int)SendingQueue::findTaskByNewsletterId($newsletter->getId())
|
||||
->where('tasks.status', SendingQueue::STATUS_SCHEDULED)
|
||||
->count();
|
||||
$data['total_scheduled'] = $this->sendingQueuesRepository->countAllByNewsletterAndTaskStatus(
|
||||
$newsletter,
|
||||
SendingQueueEntity::STATUS_SCHEDULED
|
||||
);
|
||||
}
|
||||
|
||||
if ($relation === self::RELATION_STATISTICS) {
|
||||
@@ -150,9 +156,10 @@ class NewslettersResponseBuilder {
|
||||
$data['segments'] = [];
|
||||
$data['options'] = $this->buildOptions($newsletter);
|
||||
$data['total_sent'] = $statistics ? $statistics->getTotalSentCount() : 0;
|
||||
$data['total_scheduled'] = (int)SendingQueue::findTaskByNewsletterId($newsletter->getId())
|
||||
->where('tasks.status', SendingQueue::STATUS_SCHEDULED)
|
||||
->count();
|
||||
$data['total_scheduled'] = $this->sendingQueuesRepository->countAllByNewsletterAndTaskStatus(
|
||||
$newsletter,
|
||||
SendingQueueEntity::STATUS_SCHEDULED
|
||||
);
|
||||
} elseif ($newsletter->getType() === NewsletterEntity::TYPE_NOTIFICATION) {
|
||||
$data['segments'] = $this->buildSegments($newsletter);
|
||||
$data['children_count'] = $this->newslettersStatsRepository->getChildrenCount($newsletter);
|
||||
|
Reference in New Issue
Block a user