Update call Newsletter::preProcessNewsletter()
Newsletter::preProcessNewsletter() was refactored in a previous commit to use Doctrine instead of Paris. As a result, the signature of this method was changed, but one call was left using the old signature and passing a Paris model instead of a Doctrine entity. This commit fixes this issue. [MAILPOET-5682]
This commit is contained in:
@@ -156,7 +156,7 @@ class NewsletterSaveController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->rescheduleIfNeeded($newsletter, $newsletterModel);
|
$this->rescheduleIfNeeded($newsletter, $newsletterModel);
|
||||||
$this->updateQueue($newsletter, $newsletterModel, $data['options'] ?? []);
|
$this->updateQueue($newsletter, $data['options'] ?? []);
|
||||||
$this->authorizedEmailsController->onNewsletterSenderAddressUpdate($newsletter, $oldSenderAddress);
|
$this->authorizedEmailsController->onNewsletterSenderAddressUpdate($newsletter, $oldSenderAddress);
|
||||||
return $newsletter;
|
return $newsletter;
|
||||||
}
|
}
|
||||||
@@ -410,7 +410,7 @@ class NewsletterSaveController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function updateQueue(NewsletterEntity $newsletter, Newsletter $newsletterModel, array $options) {
|
private function updateQueue(NewsletterEntity $newsletter, array $options) {
|
||||||
if ($newsletter->getType() !== NewsletterEntity::TYPE_STANDARD) {
|
if ($newsletter->getType() !== NewsletterEntity::TYPE_STANDARD) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -425,15 +425,18 @@ class NewsletterSaveController {
|
|||||||
$this->entityManager->remove($queue);
|
$this->entityManager->remove($queue);
|
||||||
$newsletter->setStatus(NewsletterEntity::STATUS_DRAFT);
|
$newsletter->setStatus(NewsletterEntity::STATUS_DRAFT);
|
||||||
} else {
|
} else {
|
||||||
$queueModel = $newsletterModel->getQueue();
|
$queue->setNewsletterRenderedSubject(null);
|
||||||
$queueModel->newsletterRenderedSubject = null;
|
$queue->setNewsletterRenderedBody(null);
|
||||||
$queueModel->newsletterRenderedBody = null;
|
$this->entityManager->persist($queue);
|
||||||
|
|
||||||
$newsletterQueueTask = new NewsletterQueueTask();
|
$newsletterQueueTask = new NewsletterQueueTask();
|
||||||
$newsletterQueueTask->preProcessNewsletter($newsletter, $queueModel);
|
$task = $queue->getTask();
|
||||||
|
|
||||||
// 'preProcessNewsletter' modifies queue by old model - let's reload it
|
if (!$task instanceof ScheduledTaskEntity) {
|
||||||
$this->entityManager->refresh($queue);
|
throw new InvalidStateException();
|
||||||
|
}
|
||||||
|
|
||||||
|
$newsletterQueueTask->preProcessNewsletter($newsletter, $task);
|
||||||
}
|
}
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
}
|
}
|
||||||
|
@@ -407,6 +407,11 @@ class NewsletterSaveControllerTest extends \MailPoetTest {
|
|||||||
|
|
||||||
$newsletter->getQueues()->add($queue);
|
$newsletter->getQueues()->add($queue);
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
|
|
||||||
|
// I'm not sure why this is needed, but without it a test fails as $task->getSendingQueue() returns
|
||||||
|
// null in \MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter::preProcessNewsletter()
|
||||||
|
$this->entityManager->refresh($task);
|
||||||
|
|
||||||
return $queue;
|
return $queue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user