Remove old ScheduledTask model from Config\Populator
[MAILPOET-4306]
This commit is contained in:
committed by
Aschepikov
parent
bc1ee3caa2
commit
ef66a21096
@ -22,8 +22,8 @@ use MailPoet\Entities\SubscriberEntity;
|
|||||||
use MailPoet\Entities\UserFlagEntity;
|
use MailPoet\Entities\UserFlagEntity;
|
||||||
use MailPoet\Form\FormsRepository;
|
use MailPoet\Form\FormsRepository;
|
||||||
use MailPoet\Mailer\MailerLog;
|
use MailPoet\Mailer\MailerLog;
|
||||||
use MailPoet\Models\ScheduledTask;
|
|
||||||
use MailPoet\Models\Segment;
|
use MailPoet\Models\Segment;
|
||||||
|
use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
|
||||||
use MailPoet\Referrals\ReferralDetector;
|
use MailPoet\Referrals\ReferralDetector;
|
||||||
use MailPoet\Segments\WP;
|
use MailPoet\Segments\WP;
|
||||||
use MailPoet\Services\Bridge;
|
use MailPoet\Services\Bridge;
|
||||||
@ -59,6 +59,8 @@ class Populator {
|
|||||||
private $wpSegment;
|
private $wpSegment;
|
||||||
/** @var EntityManager */
|
/** @var EntityManager */
|
||||||
private $entityManager;
|
private $entityManager;
|
||||||
|
/** @var ScheduledTasksRepository */
|
||||||
|
private $scheduledTasksRepository;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
SettingsController $settings,
|
SettingsController $settings,
|
||||||
@ -67,7 +69,8 @@ class Populator {
|
|||||||
ReferralDetector $referralDetector,
|
ReferralDetector $referralDetector,
|
||||||
FormsRepository $formsRepository,
|
FormsRepository $formsRepository,
|
||||||
EntityManager $entityManager,
|
EntityManager $entityManager,
|
||||||
WP $wpSegment
|
WP $wpSegment,
|
||||||
|
ScheduledTasksRepository $scheduledTasksRepository
|
||||||
) {
|
) {
|
||||||
$this->settings = $settings;
|
$this->settings = $settings;
|
||||||
$this->wp = $wp;
|
$this->wp = $wp;
|
||||||
@ -159,6 +162,7 @@ class Populator {
|
|||||||
];
|
];
|
||||||
$this->formsRepository = $formsRepository;
|
$this->formsRepository = $formsRepository;
|
||||||
$this->entityManager = $entityManager;
|
$this->entityManager = $entityManager;
|
||||||
|
$this->scheduledTasksRepository = $scheduledTasksRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function up() {
|
public function up() {
|
||||||
@ -621,8 +625,9 @@ class Populator {
|
|||||||
if (version_compare((string)$this->settings->get('db_version', '3.26.1'), '3.26.0', '>')) {
|
if (version_compare((string)$this->settings->get('db_version', '3.26.1'), '3.26.0', '>')) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
$scheduledTaskTable = $this->entityManager->getClassMetadata(ScheduledTaskEntity::class)->getTableName();
|
||||||
$sendingQueueTable = $this->entityManager->getClassMetadata(SendingQueueEntity::class)->getTableName();
|
$sendingQueueTable = $this->entityManager->getClassMetadata(SendingQueueEntity::class)->getTableName();
|
||||||
$tables = [ScheduledTask::$_table, $sendingQueueTable];
|
$tables = [$scheduledTaskTable, $sendingQueueTable];
|
||||||
foreach ($tables as $table) {
|
foreach ($tables as $table) {
|
||||||
$wpdb->query("UPDATE `" . esc_sql($table) . "` SET meta = NULL WHERE meta = 'null'");
|
$wpdb->query("UPDATE `" . esc_sql($table) . "` SET meta = NULL WHERE meta = 'null'");
|
||||||
}
|
}
|
||||||
@ -685,20 +690,28 @@ class Populator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function scheduleTask($type, $datetime, $priority = null) {
|
private function scheduleTask($type, $datetime, $priority = null) {
|
||||||
$task = ScheduledTask::where('type', $type)
|
$task = $this->scheduledTasksRepository->findOneBy(
|
||||||
->whereRaw('(status = ? OR status IS NULL)', [ScheduledTask::STATUS_SCHEDULED])
|
[
|
||||||
->findOne();
|
'type' => $type,
|
||||||
|
'status' => [ScheduledTaskEntity::STATUS_SCHEDULED, null],
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
if ($task) {
|
if ($task) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
$task = ScheduledTask::create();
|
|
||||||
$task->type = $type;
|
$task = new ScheduledTaskEntity();
|
||||||
|
$task->setType($type);
|
||||||
|
$task->setStatus(ScheduledTaskEntity::STATUS_SCHEDULED);
|
||||||
|
$task->setScheduledAt($datetime);
|
||||||
|
|
||||||
if ($priority !== null) {
|
if ($priority !== null) {
|
||||||
$task->priority = $priority;
|
$task->setPriority($priority);
|
||||||
}
|
}
|
||||||
$task->status = ScheduledTask::STATUS_SCHEDULED;
|
|
||||||
$task->scheduledAt = $datetime;
|
$this->scheduledTasksRepository->persist($task);
|
||||||
$task->save();
|
$this->scheduledTasksRepository->flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function enableStatsNotificationsForAutomatedEmails() {
|
private function enableStatsNotificationsForAutomatedEmails() {
|
||||||
|
@ -32,15 +32,7 @@ class SetupTest extends \MailPoetTest {
|
|||||||
$settings = SettingsController::getInstance();
|
$settings = SettingsController::getInstance();
|
||||||
$referralDetector = new ReferralDetector($wpStub, $settings);
|
$referralDetector = new ReferralDetector($wpStub, $settings);
|
||||||
$subscriptionCaptcha = $this->diContainer->get(Captcha::class);
|
$subscriptionCaptcha = $this->diContainer->get(Captcha::class);
|
||||||
$populator = new Populator(
|
$populator = $this->getServiceWithOverrides(Populator::class, ['wp' => $wpStub, 'referralDetector' => $referralDetector]);
|
||||||
$settings,
|
|
||||||
$wpStub,
|
|
||||||
$subscriptionCaptcha,
|
|
||||||
$referralDetector,
|
|
||||||
$this->diContainer->get(FormsRepository::class),
|
|
||||||
$this->entityManager,
|
|
||||||
$this->diContainer->get(WP::class)
|
|
||||||
);
|
|
||||||
$migrator = $this->diContainer->get(Migrator::class);
|
$migrator = $this->diContainer->get(Migrator::class);
|
||||||
$router = new Setup($wpStub, new Activator($settings, $populator, $wpStub, $migrator));
|
$router = new Setup($wpStub, new Activator($settings, $populator, $wpStub, $migrator));
|
||||||
$response = $router->reset();
|
$response = $router->reset();
|
||||||
|
Reference in New Issue
Block a user