Adds meta column to sending queues
This commit is contained in:
@ -148,6 +148,7 @@ class Migrator {
|
|||||||
'count_total int(11) unsigned NOT NULL DEFAULT 0,',
|
'count_total int(11) unsigned NOT NULL DEFAULT 0,',
|
||||||
'count_processed int(11) unsigned NOT NULL DEFAULT 0,',
|
'count_processed int(11) unsigned NOT NULL DEFAULT 0,',
|
||||||
'count_to_process int(11) unsigned NOT NULL DEFAULT 0,',
|
'count_to_process int(11) unsigned NOT NULL DEFAULT 0,',
|
||||||
|
'meta longtext,',
|
||||||
'created_at TIMESTAMP NULL,',
|
'created_at TIMESTAMP NULL,',
|
||||||
'updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,',
|
'updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,',
|
||||||
'deleted_at TIMESTAMP NULL,',
|
'deleted_at TIMESTAMP NULL,',
|
||||||
|
@ -60,6 +60,12 @@ class SendingQueue extends Model {
|
|||||||
json_encode($this->encodeEmojisInBody($this->newsletter_rendered_body))
|
json_encode($this->encodeEmojisInBody($this->newsletter_rendered_body))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if(!Helpers::isJson($this->meta)) {
|
||||||
|
$this->set(
|
||||||
|
'meta',
|
||||||
|
json_encode($this->meta)
|
||||||
|
);
|
||||||
|
}
|
||||||
parent::save();
|
parent::save();
|
||||||
$this->newsletter_rendered_body = $this->getNewsletterRenderedBody();
|
$this->newsletter_rendered_body = $this->getNewsletterRenderedBody();
|
||||||
return $this;
|
return $this;
|
||||||
@ -86,6 +92,10 @@ class SendingQueue extends Model {
|
|||||||
$rendered_newsletter;
|
$rendered_newsletter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getMeta() {
|
||||||
|
return (Helpers::isJson($this->meta)) ? json_decode($this->meta, true) : $this->meta;
|
||||||
|
}
|
||||||
|
|
||||||
function encodeEmojisInBody($newsletter_rendered_body) {
|
function encodeEmojisInBody($newsletter_rendered_body) {
|
||||||
if(is_array($newsletter_rendered_body)) {
|
if(is_array($newsletter_rendered_body)) {
|
||||||
foreach($newsletter_rendered_body as $key => $value) {
|
foreach($newsletter_rendered_body as $key => $value) {
|
||||||
@ -126,6 +136,7 @@ class SendingQueue extends Model {
|
|||||||
function asArray() {
|
function asArray() {
|
||||||
$model = parent::asArray();
|
$model = parent::asArray();
|
||||||
$model['newsletter_rendered_body'] = $this->getNewsletterRenderedBody();
|
$model['newsletter_rendered_body'] = $this->getNewsletterRenderedBody();
|
||||||
|
$model['meta'] = $this->getMeta();
|
||||||
return $model;
|
return $model;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,8 @@ class Sending {
|
|||||||
'newsletter_rendered_body',
|
'newsletter_rendered_body',
|
||||||
'count_total',
|
'count_total',
|
||||||
'count_processed',
|
'count_processed',
|
||||||
'count_to_process'
|
'count_to_process',
|
||||||
|
'meta'
|
||||||
);
|
);
|
||||||
|
|
||||||
private $common_fields = array(
|
private $common_fields = array(
|
||||||
|
@ -96,6 +96,22 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
expect(json_decode($queue->newsletter_rendered_body, true))->equals($data);
|
expect(json_decode($queue->newsletter_rendered_body, true))->equals($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testItJsonEncodesMetaWhenSaving() {
|
||||||
|
$queue = SendingQueue::create();
|
||||||
|
$meta = array(
|
||||||
|
'some' => 'value'
|
||||||
|
);
|
||||||
|
$queue->task_id = 0;
|
||||||
|
$queue->newsletter_id = 1;
|
||||||
|
$queue->meta = $meta;
|
||||||
|
$queue->save();
|
||||||
|
|
||||||
|
$queue = SendingQueue::findOne($queue->id);
|
||||||
|
|
||||||
|
expect(Helpers::isJson($queue->meta))->true();
|
||||||
|
expect(json_decode($queue->meta, true))->equals($meta);
|
||||||
|
}
|
||||||
|
|
||||||
function testItReencodesSerializedObjectToJsonEncoded() {
|
function testItReencodesSerializedObjectToJsonEncoded() {
|
||||||
$queue = $this->queue;
|
$queue = $this->queue;
|
||||||
$newsletter_rendered_body = $this->rendered_body;
|
$newsletter_rendered_body = $this->rendered_body;
|
||||||
|
Reference in New Issue
Block a user