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