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_processed int(11) unsigned NOT NULL DEFAULT 0,',
|
||||
'count_to_process int(11) unsigned NOT NULL DEFAULT 0,',
|
||||
'meta longtext,',
|
||||
'created_at TIMESTAMP NULL,',
|
||||
'updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,',
|
||||
'deleted_at TIMESTAMP NULL,',
|
||||
|
@ -60,6 +60,12 @@ class SendingQueue extends Model {
|
||||
json_encode($this->encodeEmojisInBody($this->newsletter_rendered_body))
|
||||
);
|
||||
}
|
||||
if(!Helpers::isJson($this->meta)) {
|
||||
$this->set(
|
||||
'meta',
|
||||
json_encode($this->meta)
|
||||
);
|
||||
}
|
||||
parent::save();
|
||||
$this->newsletter_rendered_body = $this->getNewsletterRenderedBody();
|
||||
return $this;
|
||||
@ -86,6 +92,10 @@ class SendingQueue extends Model {
|
||||
$rendered_newsletter;
|
||||
}
|
||||
|
||||
function getMeta() {
|
||||
return (Helpers::isJson($this->meta)) ? json_decode($this->meta, true) : $this->meta;
|
||||
}
|
||||
|
||||
function encodeEmojisInBody($newsletter_rendered_body) {
|
||||
if(is_array($newsletter_rendered_body)) {
|
||||
foreach($newsletter_rendered_body as $key => $value) {
|
||||
@ -126,6 +136,7 @@ class SendingQueue extends Model {
|
||||
function asArray() {
|
||||
$model = parent::asArray();
|
||||
$model['newsletter_rendered_body'] = $this->getNewsletterRenderedBody();
|
||||
$model['meta'] = $this->getMeta();
|
||||
return $model;
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,8 @@ class Sending {
|
||||
'newsletter_rendered_body',
|
||||
'count_total',
|
||||
'count_processed',
|
||||
'count_to_process'
|
||||
'count_to_process',
|
||||
'meta'
|
||||
);
|
||||
|
||||
private $common_fields = array(
|
||||
|
@ -96,6 +96,22 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
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() {
|
||||
$queue = $this->queue;
|
||||
$newsletter_rendered_body = $this->rendered_body;
|
||||
|
Reference in New Issue
Block a user