Remove old ScheduledTask model from Config\Populator

[MAILPOET-4306]
This commit is contained in:
Rodrigo Primo
2022-09-15 15:57:25 -03:00
committed by Aschepikov
parent bc1ee3caa2
commit ef66a21096
2 changed files with 26 additions and 21 deletions

View File

@ -22,8 +22,8 @@ use MailPoet\Entities\SubscriberEntity;
use MailPoet\Entities\UserFlagEntity;
use MailPoet\Form\FormsRepository;
use MailPoet\Mailer\MailerLog;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\Segment;
use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
use MailPoet\Referrals\ReferralDetector;
use MailPoet\Segments\WP;
use MailPoet\Services\Bridge;
@ -59,6 +59,8 @@ class Populator {
private $wpSegment;
/** @var EntityManager */
private $entityManager;
/** @var ScheduledTasksRepository */
private $scheduledTasksRepository;
public function __construct(
SettingsController $settings,
@ -67,7 +69,8 @@ class Populator {
ReferralDetector $referralDetector,
FormsRepository $formsRepository,
EntityManager $entityManager,
WP $wpSegment
WP $wpSegment,
ScheduledTasksRepository $scheduledTasksRepository
) {
$this->settings = $settings;
$this->wp = $wp;
@ -159,6 +162,7 @@ class Populator {
];
$this->formsRepository = $formsRepository;
$this->entityManager = $entityManager;
$this->scheduledTasksRepository = $scheduledTasksRepository;
}
public function up() {
@ -621,8 +625,9 @@ class Populator {
if (version_compare((string)$this->settings->get('db_version', '3.26.1'), '3.26.0', '>')) {
return false;
}
$scheduledTaskTable = $this->entityManager->getClassMetadata(ScheduledTaskEntity::class)->getTableName();
$sendingQueueTable = $this->entityManager->getClassMetadata(SendingQueueEntity::class)->getTableName();
$tables = [ScheduledTask::$_table, $sendingQueueTable];
$tables = [$scheduledTaskTable, $sendingQueueTable];
foreach ($tables as $table) {
$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) {
$task = ScheduledTask::where('type', $type)
->whereRaw('(status = ? OR status IS NULL)', [ScheduledTask::STATUS_SCHEDULED])
->findOne();
$task = $this->scheduledTasksRepository->findOneBy(
[
'type' => $type,
'status' => [ScheduledTaskEntity::STATUS_SCHEDULED, null],
]
);
if ($task) {
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) {
$task->priority = $priority;
$task->setPriority($priority);
}
$task->status = ScheduledTask::STATUS_SCHEDULED;
$task->scheduledAt = $datetime;
$task->save();
$this->scheduledTasksRepository->persist($task);
$this->scheduledTasksRepository->flush();
}
private function enableStatsNotificationsForAutomatedEmails() {

View File

@ -32,15 +32,7 @@ class SetupTest extends \MailPoetTest {
$settings = SettingsController::getInstance();
$referralDetector = new ReferralDetector($wpStub, $settings);
$subscriptionCaptcha = $this->diContainer->get(Captcha::class);
$populator = new Populator(
$settings,
$wpStub,
$subscriptionCaptcha,
$referralDetector,
$this->diContainer->get(FormsRepository::class),
$this->entityManager,
$this->diContainer->get(WP::class)
);
$populator = $this->getServiceWithOverrides(Populator::class, ['wp' => $wpStub, 'referralDetector' => $referralDetector]);
$migrator = $this->diContainer->get(Migrator::class);
$router = new Setup($wpStub, new Activator($settings, $populator, $wpStub, $migrator));
$response = $router->reset();