Use doctrine for populator query
[MAILPOET-3481]
This commit is contained in:
@ -10,6 +10,9 @@ use MailPoet\Cron\Workers\StatsNotifications\Worker;
|
|||||||
use MailPoet\Cron\Workers\SubscriberLinkTokens;
|
use MailPoet\Cron\Workers\SubscriberLinkTokens;
|
||||||
use MailPoet\Cron\Workers\UnsubscribeTokens;
|
use MailPoet\Cron\Workers\UnsubscribeTokens;
|
||||||
use MailPoet\Entities\FormEntity;
|
use MailPoet\Entities\FormEntity;
|
||||||
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
|
use MailPoet\Entities\ScheduledTaskEntity;
|
||||||
|
use MailPoet\Entities\SendingQueueEntity;
|
||||||
use MailPoet\Entities\UserFlagEntity;
|
use MailPoet\Entities\UserFlagEntity;
|
||||||
use MailPoet\Form\FormsRepository;
|
use MailPoet\Form\FormsRepository;
|
||||||
use MailPoet\Mailer\MailerLog;
|
use MailPoet\Mailer\MailerLog;
|
||||||
@ -32,6 +35,7 @@ use MailPoet\Subscription\Captcha;
|
|||||||
use MailPoet\Util\Helpers;
|
use MailPoet\Util\Helpers;
|
||||||
use MailPoet\WP\Functions as WPFunctions;
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use MailPoetVendor\Carbon\Carbon;
|
use MailPoetVendor\Carbon\Carbon;
|
||||||
|
use MailPoetVendor\Doctrine\ORM\EntityManager;
|
||||||
|
|
||||||
class Populator {
|
class Populator {
|
||||||
public $prefix;
|
public $prefix;
|
||||||
@ -50,6 +54,8 @@ class Populator {
|
|||||||
private $formsRepository;
|
private $formsRepository;
|
||||||
/** @var WP */
|
/** @var WP */
|
||||||
private $wpSegment;
|
private $wpSegment;
|
||||||
|
/** @var EntityManager */
|
||||||
|
private $entityManager;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
SettingsController $settings,
|
SettingsController $settings,
|
||||||
@ -57,6 +63,7 @@ class Populator {
|
|||||||
Captcha $captcha,
|
Captcha $captcha,
|
||||||
ReferralDetector $referralDetector,
|
ReferralDetector $referralDetector,
|
||||||
FormsRepository $formsRepository,
|
FormsRepository $formsRepository,
|
||||||
|
EntityManager $entityManager,
|
||||||
WP $wpSegment
|
WP $wpSegment
|
||||||
) {
|
) {
|
||||||
$this->settings = $settings;
|
$this->settings = $settings;
|
||||||
@ -146,6 +153,7 @@ class Populator {
|
|||||||
'FarmersMarket',
|
'FarmersMarket',
|
||||||
];
|
];
|
||||||
$this->formsRepository = $formsRepository;
|
$this->formsRepository = $formsRepository;
|
||||||
|
$this->entityManager = $entityManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function up() {
|
public function up() {
|
||||||
@ -694,15 +702,27 @@ class Populator {
|
|||||||
if (version_compare($this->settings->get('db_version', '3.60.5'), '3.60.4', '>')) {
|
if (version_compare($this->settings->get('db_version', '3.60.5'), '3.60.4', '>')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
global $wpdb;
|
|
||||||
$wpdb->query(
|
$scheduledTaskTable = $this->entityManager->getClassMetadata(ScheduledTaskEntity::class)->getTableName();
|
||||||
'UPDATE `' . ScheduledTask::$_table . '` t ' .
|
$sendingQueueTable = $this->entityManager->getClassMetadata(SendingQueueEntity::class)->getTableName();
|
||||||
'JOIN `' . SendingQueue::$_table . '` q ON t.`id` = q.`task_id` ' .
|
$newsletterTable = $this->entityManager->getClassMetadata(NewsletterEntity::class)->getTableName();
|
||||||
'JOIN `' . Newsletter::$_table . '` n ON n.`id` = q.`newsletter_id` ' .
|
|
||||||
'SET t.`status` = "' . ScheduledTask::STATUS_PAUSED . '" ' .
|
$query = "
|
||||||
'WHERE ' .
|
UPDATE $scheduledTaskTable as t
|
||||||
' t.`status` = "' . ScheduledTask::STATUS_SCHEDULED . '" ' .
|
JOIN $sendingQueueTable as q ON t.id = q.task_id
|
||||||
' AND n.`status` = "' . Newsletter::STATUS_DRAFT . '" '
|
JOIN $newsletterTable as n ON n.id = q.newsletter_id
|
||||||
|
SET t.status = :tStatusPaused
|
||||||
|
WHERE
|
||||||
|
t.status = :tStatusScheduled
|
||||||
|
AND n.status = :nStatusDraft
|
||||||
|
";
|
||||||
|
$this->entityManager->getConnection()->executeUpdate(
|
||||||
|
$query,
|
||||||
|
[
|
||||||
|
'tStatusPaused' => ScheduledTaskEntity::STATUS_PAUSED,
|
||||||
|
'tStatusScheduled' => ScheduledTaskEntity::STATUS_SCHEDULED,
|
||||||
|
'nStatusDraft' => NewsletterEntity::STATUS_DRAFT,
|
||||||
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ class SetupTest extends \MailPoetTest {
|
|||||||
new Captcha(),
|
new Captcha(),
|
||||||
$referralDetector,
|
$referralDetector,
|
||||||
$this->diContainer->get(FormsRepository::class),
|
$this->diContainer->get(FormsRepository::class),
|
||||||
|
$this->entityManager,
|
||||||
$this->diContainer->get(WP::class)
|
$this->diContainer->get(WP::class)
|
||||||
);
|
);
|
||||||
$router = new Setup($wpStub, new Activator($settings, $populator));
|
$router = new Setup($wpStub, new Activator($settings, $populator));
|
||||||
|
Reference in New Issue
Block a user