Refactor to doctrine

[MAILPOET-3876]
This commit is contained in:
Pavel Dohnal
2021-11-08 13:09:10 +01:00
committed by Veljko V
parent ee00f03ed3
commit 9229ed77d8
2 changed files with 18 additions and 8 deletions

View File

@ -120,14 +120,13 @@ class SendingQueue extends APIEndpoint {
}
WordPress::resetRunInterval();
if ((bool)$newsletter->isScheduled) {
if ((bool)$newsletterEntity->getOptionValue('isScheduled')) {
// set newsletter status
$newsletter->setStatus(Newsletter::STATUS_SCHEDULED);
$newsletterEntity->setStatus(NewsletterEntity::STATUS_SCHEDULED);
// set queue status
$queue->status = SendingQueueModel::STATUS_SCHEDULED;
$queue->scheduledAt = Scheduler::formatDatetimeString($newsletter->scheduledAt);
$queue->scheduledAt = Scheduler::formatDatetimeString($newsletterEntity->getOptionValue('scheduledAt'));
} else {
$segments = $newsletter->segments()->findMany();
$subscribersCount = $this->subscribersFinder->addSubscribersToTaskFromSegments($queue->task(), $segments);
@ -141,9 +140,10 @@ class SendingQueue extends APIEndpoint {
$queue->scheduledAt = null;
// set newsletter status
$newsletter->setStatus(Newsletter::STATUS_SENDING);
$newsletterEntity->setStatus(Newsletter::STATUS_SENDING);
}
$queue->save();
$this->newsletterRepository->flush();
$errors = $queue->getErrors();
if (!empty($errors)) {

View File

@ -15,6 +15,7 @@ use MailPoet\Newsletter\NewslettersRepository;
use MailPoet\Newsletter\Options\NewsletterOptionFieldsRepository;
use MailPoet\Newsletter\Options\NewsletterOptionsRepository;
use MailPoet\Newsletter\Sending\ScheduledTasksRepository;
use MailPoet\Newsletter\Sending\SendingQueuesRepository;
use MailPoet\Segments\SubscribersFinder;
use MailPoet\Services\Bridge;
use MailPoet\Settings\SettingsController;
@ -64,7 +65,9 @@ class SendingQueueTest extends \MailPoetTest {
$scheduledTask = $repo->findOneById($result->data['task_id']);
assert($scheduledTask instanceof ScheduledTaskEntity);
expect($scheduledTask->getStatus())->equals(ScheduledTaskEntity::STATUS_SCHEDULED);
expect($scheduledTask->getScheduledAt()->format('Y-m-d H:i:s'))->equals($newletterOptions['scheduledAt']);
$scheduled = $scheduledTask->getScheduledAt();
assert($scheduled instanceof \DateTimeInterface);
expect($scheduled->format('Y-m-d H:i:s'))->equals($newletterOptions['scheduledAt']);
expect($scheduledTask->getType())->equals(Sending::TASK_TYPE);
}
@ -74,6 +77,7 @@ class SendingQueueTest extends \MailPoetTest {
'check' => true,
]),
$this->diContainer->get(NewslettersRepository::class),
$this->diContainer->get(SendingQueuesRepository::class),
$this->diContainer->get(Bridge::class),
$this->diContainer->get(SubscribersFinder::class)
);
@ -103,7 +107,9 @@ class SendingQueueTest extends \MailPoetTest {
$repo = $this->diContainer->get(ScheduledTasksRepository::class);
$scheduledTask = $repo->findOneById($result->data['task_id']);
assert($scheduledTask instanceof ScheduledTaskEntity);
expect($scheduledTask->getScheduledAt()->format('Y-m-d H:i:s'))->equals('2018-10-10 10:00:00');
$scheduled = $scheduledTask->getScheduledAt();
assert($scheduled instanceof \DateTimeInterface);
expect($scheduled->format('Y-m-d H:i:s'))->equals('2018-10-10 10:00:00');
// update scheduled time
$newletterOptions = [
@ -122,7 +128,9 @@ class SendingQueueTest extends \MailPoetTest {
// new task was not created
expect($rescheduledTask->getId())->equals($scheduledTask->getId());
// scheduled time was updated
expect($rescheduledTask->getScheduledAt()->format('Y-m-d H:i:s'))->equals('2018-11-11 11:00:00');
$scheduled = $rescheduledTask->getScheduledAt();
assert($scheduled instanceof \DateTimeInterface);
expect($scheduled->format('Y-m-d H:i:s'))->equals('2018-11-11 11:00:00');
}
public function testItRejectsNewsletterWithoutUnsubscribeLink() {
@ -135,6 +143,7 @@ class SendingQueueTest extends \MailPoetTest {
$sendingQueue = new SendingQueueAPI(
$this->diContainer->get(SubscribersFeature::class),
$this->diContainer->get(NewslettersRepository::class),
$this->diContainer->get(SendingQueuesRepository::class),
Stub::make(Bridge::class, [
'isMailpoetSendingServiceEnabled' => true,
]),
@ -163,6 +172,7 @@ class SendingQueueTest extends \MailPoetTest {
$newsletterOption = $newsletterOptionRepository->findOneBy(['newsletter' => $newsletter, 'optionField' => $newsletterOptionField]);
if (!$newsletterOption instanceof NewsletterOptionEntity) {
$newsletterOption = new NewsletterOptionEntity($newsletter, $newsletterOptionField);
$newsletter->getOptions()->add($newsletterOption);
$this->entityManager->persist($newsletterOption);
}
$newsletterOption->setValue($value);