Move function to a better repository
[MAILPOET-2439]
This commit is contained in:
committed by
Jack Kitterhing
parent
bda3bd3f63
commit
ab1e398241
@ -6,15 +6,14 @@ use Carbon\Carbon;
|
||||
use MailPoet\Config\Renderer;
|
||||
use MailPoet\Cron\Workers\SimpleWorker;
|
||||
use MailPoet\Entities\NewsletterEntity;
|
||||
use MailPoet\Features\FeaturesController;
|
||||
use MailPoet\Mailer\Mailer;
|
||||
use MailPoet\Mailer\MetaInfo;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\ScheduledTask;
|
||||
use MailPoet\Newsletter\NewslettersRepository;
|
||||
use MailPoet\Newsletter\Statistics\NewsletterStatistics;
|
||||
use MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\WooCommerce\Helper as WCHelper;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
|
||||
class AutomatedEmails extends SimpleWorker {
|
||||
@ -35,7 +34,7 @@ class AutomatedEmails extends SimpleWorker {
|
||||
/** @var float */
|
||||
public $timer;
|
||||
|
||||
/** @var StatsNotificationsRepository */
|
||||
/** @var NewslettersRepository */
|
||||
private $repository;
|
||||
|
||||
/** @var NewsletterStatisticsRepository */
|
||||
@ -45,7 +44,7 @@ class AutomatedEmails extends SimpleWorker {
|
||||
Mailer $mailer,
|
||||
Renderer $renderer,
|
||||
SettingsController $settings,
|
||||
StatsNotificationsRepository $repository,
|
||||
NewslettersRepository $repository,
|
||||
NewsletterStatisticsRepository $newsletter_statistics_repository,
|
||||
MetaInfo $mailerMetaInfo,
|
||||
$timer = false
|
||||
@ -116,7 +115,9 @@ class AutomatedEmails extends SimpleWorker {
|
||||
|
||||
protected function getNewsletters() {
|
||||
$result = [];
|
||||
$newsletters = $this->repository->findScheduledAutomatedNewsletters();
|
||||
$newsletters = $this->repository->findActiveByTypes(
|
||||
[NewsletterEntity::TYPE_AUTOMATIC, NewsletterEntity::TYPE_WELCOME]
|
||||
);
|
||||
foreach ($newsletters as $newsletter) {
|
||||
$statistics = $this->newsletter_statistics_repository->getStatistics($newsletter);
|
||||
if ($statistics->getTotalSentCount()) {
|
||||
|
@ -54,23 +54,5 @@ class StatsNotificationsRepository extends Repository {
|
||||
return $query->getQuery()->getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return NewsletterEntity[]
|
||||
*/
|
||||
public function findScheduledAutomatedNewsletters() {
|
||||
return $this->entity_manager
|
||||
->createQueryBuilder()
|
||||
->select('n')
|
||||
->from(NewsletterEntity::class, 'n')
|
||||
->where('n.status = :status')
|
||||
->setParameter(':status', NewsletterEntity::STATUS_ACTIVE)
|
||||
->andWhere('n.deleted_at is null')
|
||||
->andWhere('n.type IN (:types)')
|
||||
->setParameter('types', [NewsletterEntity::TYPE_AUTOMATIC, NewsletterEntity::TYPE_WELCOME])
|
||||
->orderBy('n.subject')
|
||||
->getQuery()
|
||||
->getResult();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -166,7 +166,7 @@ class WorkersFactory {
|
||||
$this->mailer,
|
||||
$this->renderer,
|
||||
$this->settings,
|
||||
$this->stats_notifications_repository,
|
||||
$this->newsletters_repository,
|
||||
$this->newsletter_statistics_repository,
|
||||
$this->mailerMetaInfo,
|
||||
$timer
|
||||
|
@ -16,4 +16,23 @@ class NewslettersRepository extends Repository {
|
||||
protected function getEntityClassName() {
|
||||
return NewsletterEntity::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string[] $types
|
||||
* @return NewsletterEntity[]
|
||||
*/
|
||||
public function findActiveByTypes($types) {
|
||||
return $this->entity_manager
|
||||
->createQueryBuilder()
|
||||
->select('n')
|
||||
->from(NewsletterEntity::class, 'n')
|
||||
->where('n.status = :status')
|
||||
->setParameter(':status', NewsletterEntity::STATUS_ACTIVE)
|
||||
->andWhere('n.deleted_at is null')
|
||||
->andWhere('n.type IN (:types)')
|
||||
->setParameter('types', $types)
|
||||
->orderBy('n.subject')
|
||||
->getQuery()
|
||||
->getResult();
|
||||
}
|
||||
}
|
||||
|
@ -11,9 +11,9 @@ use MailPoet\Models\ScheduledTask;
|
||||
use MailPoet\Models\SendingQueue;
|
||||
use MailPoet\Models\StatisticsClicks;
|
||||
use MailPoet\Models\StatisticsOpens;
|
||||
use MailPoet\Newsletter\NewslettersRepository;
|
||||
use MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\WooCommerce\Helper as WCHelper;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
|
||||
class AutomatedEmailsTest extends \MailPoetTest {
|
||||
@ -47,7 +47,7 @@ class AutomatedEmailsTest extends \MailPoetTest {
|
||||
$this->mailer,
|
||||
$this->renderer,
|
||||
$this->settings,
|
||||
ContainerWrapper::getInstance()->get(StatsNotificationsRepository::class),
|
||||
ContainerWrapper::getInstance()->get(NewslettersRepository::class),
|
||||
ContainerWrapper::getInstance()->get(NewsletterStatisticsRepository::class),
|
||||
new MetaInfo
|
||||
);
|
||||
|
Reference in New Issue
Block a user