api/newsletters: Re-render newsletter with queue on save [MAILPOET-1305]

This commit is contained in:
Rostislav Wolny
2018-03-06 08:59:57 +01:00
parent 0d514a8084
commit 662b033677
2 changed files with 13 additions and 10 deletions

View File

@ -6,6 +6,7 @@ use Carbon\Carbon;
use MailPoet\API\JSON\Endpoint as APIEndpoint;
use MailPoet\API\JSON\Error as APIError;
use MailPoet\Config\AccessControl;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterQueueTask;
use MailPoet\Listing;
use MailPoet\Models\Newsletter;
use MailPoet\Models\NewsletterOption;
@ -124,7 +125,8 @@ class Newsletters extends APIEndpoint {
} else {
$queue->newsletter_rendered_body = null;
$queue->newsletter_rendered_subject = null;
$queue->save();
$newsletterQueueTask = new NewsletterQueueTask();
$newsletterQueueTask->preProcessNewsletter($newsletter, $queue);
}
}

View File

@ -169,30 +169,31 @@ class NewslettersTest extends \MailPoetTest {
expect($updated_newsletter->subject)->equals('My Updated Newsletter');
}
function testItCanClearRenderedQueueUponSave() {
function testItCanRerenderQueueUponSave() {
$sending_queue = SendingTask::create();
$sending_queue->newsletter_id = $this->newsletter->id;
$sending_queue->status = SendingQueue::STATUS_SCHEDULED;
$sending_queue->newsletter_rendered_body = array('html' => 'html', 'text' => 'text');
$sending_queue->newsletter_rendered_subject = 'Rendered subject ...';
$sending_queue->newsletter_rendered_body = null;
$sending_queue->newsletter_rendered_subject = null;
$sending_queue->save();
expect($sending_queue->getErrors())->false();
$router = new Newsletters();
$newsletter_data = array(
'id' => $this->newsletter->id,
'subject' => 'My Updated Newsletter'
'subject' => 'My Updated Newsletter',
'body' => Fixtures::get('newsletter_body_template'),
);
$response = $router->save($newsletter_data);
$updated_newsletter = Newsletter::findOne($this->newsletter->id)
->withSendingQueue()
$updated_queue = SendingQueue::where('newsletter_id', $this->newsletter->id)
->findOne()
->asArray();
$updated_queue = $updated_newsletter['queue'];
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);
expect($updated_queue['newsletter_rendered_body'])->hasKey('html');
expect($updated_queue['newsletter_rendered_body'])->hasKey('text');
expect($updated_queue['newsletter_rendered_subject'])->equals('My Updated Newsletter');
}
function testItCanUpdatePostNotificationScheduleUponSave() {