diff --git a/lib/API/JSON/v1/Newsletters.php b/lib/API/JSON/v1/Newsletters.php index 05c3efcb15..d4e6db2cc8 100644 --- a/lib/API/JSON/v1/Newsletters.php +++ b/lib/API/JSON/v1/Newsletters.php @@ -110,6 +110,13 @@ class Newsletters extends APIEndpoint { } } + $queue = $newsletter->getQueue(); + if ($queue) { + $queue->newsletter_rendered_body = null; + $queue->newsletter_rendered_subject = null; + $queue->save(); + } + Hooks::doAction('mailpoet_api_newsletters_save_after', $newsletter); return $this->successResponse($newsletter->asArray()); @@ -455,4 +462,4 @@ class Newsletters extends APIEndpoint { ); } } -} \ No newline at end of file +} diff --git a/tests/unit/API/JSON/v1/NewslettersTest.php b/tests/unit/API/JSON/v1/NewslettersTest.php index 3dfa4343e8..771eb3d253 100644 --- a/tests/unit/API/JSON/v1/NewslettersTest.php +++ b/tests/unit/API/JSON/v1/NewslettersTest.php @@ -163,6 +163,28 @@ class NewslettersTest extends \MailPoetTest { expect($updated_newsletter->subject)->equals('My Updated Newsletter'); } + function testItCanClearRenderedQueueUponSave() { + $sending_queue = SendingQueue::create(); + $sending_queue->newsletter_id = 1; + $sending_queue->status = SendingQueue::STATUS_SCHEDULED; + $sending_queue->newsletter_rendered_body = 'Rendered body ...'; + $sending_queue->newsletter_rendered_subject = 'Rendered subject ...'; + $sending_queue->save(); + + $router = new Newsletters(); + $newsletter_data = array( + 'id' => $this->newsletter->id, + 'subject' => 'My Updated Newsletter' + ); + + $response = $router->save($newsletter_data); + $updated_newsletter = Newsletter::findOne($this->newsletter->id); + $updated_queue = $updated_newsletter->getQueue(); + expect($response->status)->equals(APIResponse::STATUS_OK); + expect(unserialize($updated_queue->newsletter_rendered_body))->equals(null); + expect(unserialize($updated_queue->newsletter_rendered_subject))->equals(null); + } + function testItCanUpdatePostNotificationScheduleUponSave() { $newsletter_options = array( 'intervalType',