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\Config\Renderer;
|
||||||
use MailPoet\Cron\Workers\SimpleWorker;
|
use MailPoet\Cron\Workers\SimpleWorker;
|
||||||
use MailPoet\Entities\NewsletterEntity;
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
use MailPoet\Features\FeaturesController;
|
|
||||||
use MailPoet\Mailer\Mailer;
|
use MailPoet\Mailer\Mailer;
|
||||||
use MailPoet\Mailer\MetaInfo;
|
use MailPoet\Mailer\MetaInfo;
|
||||||
use MailPoet\Models\Newsletter;
|
use MailPoet\Models\Newsletter;
|
||||||
use MailPoet\Models\ScheduledTask;
|
use MailPoet\Models\ScheduledTask;
|
||||||
|
use MailPoet\Newsletter\NewslettersRepository;
|
||||||
use MailPoet\Newsletter\Statistics\NewsletterStatistics;
|
use MailPoet\Newsletter\Statistics\NewsletterStatistics;
|
||||||
use MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository;
|
use MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
use MailPoet\WooCommerce\Helper as WCHelper;
|
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class AutomatedEmails extends SimpleWorker {
|
class AutomatedEmails extends SimpleWorker {
|
||||||
@@ -35,7 +34,7 @@ class AutomatedEmails extends SimpleWorker {
|
|||||||
/** @var float */
|
/** @var float */
|
||||||
public $timer;
|
public $timer;
|
||||||
|
|
||||||
/** @var StatsNotificationsRepository */
|
/** @var NewslettersRepository */
|
||||||
private $repository;
|
private $repository;
|
||||||
|
|
||||||
/** @var NewsletterStatisticsRepository */
|
/** @var NewsletterStatisticsRepository */
|
||||||
@@ -45,7 +44,7 @@ class AutomatedEmails extends SimpleWorker {
|
|||||||
Mailer $mailer,
|
Mailer $mailer,
|
||||||
Renderer $renderer,
|
Renderer $renderer,
|
||||||
SettingsController $settings,
|
SettingsController $settings,
|
||||||
StatsNotificationsRepository $repository,
|
NewslettersRepository $repository,
|
||||||
NewsletterStatisticsRepository $newsletter_statistics_repository,
|
NewsletterStatisticsRepository $newsletter_statistics_repository,
|
||||||
MetaInfo $mailerMetaInfo,
|
MetaInfo $mailerMetaInfo,
|
||||||
$timer = false
|
$timer = false
|
||||||
@@ -116,7 +115,9 @@ class AutomatedEmails extends SimpleWorker {
|
|||||||
|
|
||||||
protected function getNewsletters() {
|
protected function getNewsletters() {
|
||||||
$result = [];
|
$result = [];
|
||||||
$newsletters = $this->repository->findScheduledAutomatedNewsletters();
|
$newsletters = $this->repository->findActiveByTypes(
|
||||||
|
[NewsletterEntity::TYPE_AUTOMATIC, NewsletterEntity::TYPE_WELCOME]
|
||||||
|
);
|
||||||
foreach ($newsletters as $newsletter) {
|
foreach ($newsletters as $newsletter) {
|
||||||
$statistics = $this->newsletter_statistics_repository->getStatistics($newsletter);
|
$statistics = $this->newsletter_statistics_repository->getStatistics($newsletter);
|
||||||
if ($statistics->getTotalSentCount()) {
|
if ($statistics->getTotalSentCount()) {
|
||||||
|
@@ -54,23 +54,5 @@ class StatsNotificationsRepository extends Repository {
|
|||||||
return $query->getQuery()->getResult();
|
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->mailer,
|
||||||
$this->renderer,
|
$this->renderer,
|
||||||
$this->settings,
|
$this->settings,
|
||||||
$this->stats_notifications_repository,
|
$this->newsletters_repository,
|
||||||
$this->newsletter_statistics_repository,
|
$this->newsletter_statistics_repository,
|
||||||
$this->mailerMetaInfo,
|
$this->mailerMetaInfo,
|
||||||
$timer
|
$timer
|
||||||
|
@@ -16,4 +16,23 @@ class NewslettersRepository extends Repository {
|
|||||||
protected function getEntityClassName() {
|
protected function getEntityClassName() {
|
||||||
return NewsletterEntity::class;
|
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\SendingQueue;
|
||||||
use MailPoet\Models\StatisticsClicks;
|
use MailPoet\Models\StatisticsClicks;
|
||||||
use MailPoet\Models\StatisticsOpens;
|
use MailPoet\Models\StatisticsOpens;
|
||||||
|
use MailPoet\Newsletter\NewslettersRepository;
|
||||||
use MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository;
|
use MailPoet\Newsletter\Statistics\NewsletterStatisticsRepository;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
use MailPoet\WooCommerce\Helper as WCHelper;
|
|
||||||
use PHPUnit\Framework\MockObject\MockObject;
|
use PHPUnit\Framework\MockObject\MockObject;
|
||||||
|
|
||||||
class AutomatedEmailsTest extends \MailPoetTest {
|
class AutomatedEmailsTest extends \MailPoetTest {
|
||||||
@@ -47,7 +47,7 @@ class AutomatedEmailsTest extends \MailPoetTest {
|
|||||||
$this->mailer,
|
$this->mailer,
|
||||||
$this->renderer,
|
$this->renderer,
|
||||||
$this->settings,
|
$this->settings,
|
||||||
ContainerWrapper::getInstance()->get(StatsNotificationsRepository::class),
|
ContainerWrapper::getInstance()->get(NewslettersRepository::class),
|
||||||
ContainerWrapper::getInstance()->get(NewsletterStatisticsRepository::class),
|
ContainerWrapper::getInstance()->get(NewsletterStatisticsRepository::class),
|
||||||
new MetaInfo
|
new MetaInfo
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user