api/newsletters: Re-render newsletter with queue on save [MAILPOET-1305]
This commit is contained in:
@ -6,6 +6,7 @@ use Carbon\Carbon;
|
|||||||
use MailPoet\API\JSON\Endpoint as APIEndpoint;
|
use MailPoet\API\JSON\Endpoint as APIEndpoint;
|
||||||
use MailPoet\API\JSON\Error as APIError;
|
use MailPoet\API\JSON\Error as APIError;
|
||||||
use MailPoet\Config\AccessControl;
|
use MailPoet\Config\AccessControl;
|
||||||
|
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterQueueTask;
|
||||||
use MailPoet\Listing;
|
use MailPoet\Listing;
|
||||||
use MailPoet\Models\Newsletter;
|
use MailPoet\Models\Newsletter;
|
||||||
use MailPoet\Models\NewsletterOption;
|
use MailPoet\Models\NewsletterOption;
|
||||||
@ -124,7 +125,8 @@ class Newsletters extends APIEndpoint {
|
|||||||
} else {
|
} else {
|
||||||
$queue->newsletter_rendered_body = null;
|
$queue->newsletter_rendered_body = null;
|
||||||
$queue->newsletter_rendered_subject = null;
|
$queue->newsletter_rendered_subject = null;
|
||||||
$queue->save();
|
$newsletterQueueTask = new NewsletterQueueTask();
|
||||||
|
$newsletterQueueTask->preProcessNewsletter($newsletter, $queue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -169,30 +169,31 @@ class NewslettersTest extends \MailPoetTest {
|
|||||||
expect($updated_newsletter->subject)->equals('My Updated Newsletter');
|
expect($updated_newsletter->subject)->equals('My Updated Newsletter');
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItCanClearRenderedQueueUponSave() {
|
function testItCanRerenderQueueUponSave() {
|
||||||
$sending_queue = SendingTask::create();
|
$sending_queue = SendingTask::create();
|
||||||
$sending_queue->newsletter_id = $this->newsletter->id;
|
$sending_queue->newsletter_id = $this->newsletter->id;
|
||||||
$sending_queue->status = SendingQueue::STATUS_SCHEDULED;
|
$sending_queue->status = SendingQueue::STATUS_SCHEDULED;
|
||||||
$sending_queue->newsletter_rendered_body = array('html' => 'html', 'text' => 'text');
|
$sending_queue->newsletter_rendered_body = null;
|
||||||
$sending_queue->newsletter_rendered_subject = 'Rendered subject ...';
|
$sending_queue->newsletter_rendered_subject = null;
|
||||||
$sending_queue->save();
|
$sending_queue->save();
|
||||||
expect($sending_queue->getErrors())->false();
|
expect($sending_queue->getErrors())->false();
|
||||||
|
|
||||||
$router = new Newsletters();
|
$router = new Newsletters();
|
||||||
$newsletter_data = array(
|
$newsletter_data = array(
|
||||||
'id' => $this->newsletter->id,
|
'id' => $this->newsletter->id,
|
||||||
'subject' => 'My Updated Newsletter'
|
'subject' => 'My Updated Newsletter',
|
||||||
|
'body' => Fixtures::get('newsletter_body_template'),
|
||||||
);
|
);
|
||||||
|
|
||||||
$response = $router->save($newsletter_data);
|
$response = $router->save($newsletter_data);
|
||||||
$updated_newsletter = Newsletter::findOne($this->newsletter->id)
|
$updated_queue = SendingQueue::where('newsletter_id', $this->newsletter->id)
|
||||||
->withSendingQueue()
|
->findOne()
|
||||||
->asArray();
|
->asArray();
|
||||||
$updated_queue = $updated_newsletter['queue'];
|
|
||||||
|
|
||||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
expect(unserialize($updated_queue['newsletter_rendered_body']))->equals(null);
|
expect($updated_queue['newsletter_rendered_body'])->hasKey('html');
|
||||||
expect(unserialize($updated_queue['newsletter_rendered_subject']))->equals(null);
|
expect($updated_queue['newsletter_rendered_body'])->hasKey('text');
|
||||||
|
expect($updated_queue['newsletter_rendered_subject'])->equals('My Updated Newsletter');
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItCanUpdatePostNotificationScheduleUponSave() {
|
function testItCanUpdatePostNotificationScheduleUponSave() {
|
||||||
|
Reference in New Issue
Block a user