Don't serialize meta fields if they're null [MAILPOET-2073]
This commit is contained in:
@@ -99,7 +99,7 @@ class ScheduledTask extends Model {
|
|||||||
if (!$this->priority) {
|
if (!$this->priority) {
|
||||||
$this->priority = self::PRIORITY_MEDIUM;
|
$this->priority = self::PRIORITY_MEDIUM;
|
||||||
}
|
}
|
||||||
if (!Helpers::isJson($this->meta)) {
|
if (!is_null($this->meta) && !Helpers::isJson($this->meta)) {
|
||||||
$this->set(
|
$this->set(
|
||||||
'meta',
|
'meta',
|
||||||
json_encode($this->meta)
|
json_encode($this->meta)
|
||||||
|
@@ -16,7 +16,7 @@ if (!defined('ABSPATH')) exit;
|
|||||||
* @property string $newsletter_rendered_subject
|
* @property string $newsletter_rendered_subject
|
||||||
* @property int $task_id
|
* @property int $task_id
|
||||||
* @property int $newsletter_id
|
* @property int $newsletter_id
|
||||||
* @property string|object $meta
|
* @property string|object|null $meta
|
||||||
* @property string|array $subscribers
|
* @property string|array $subscribers
|
||||||
* @property string|null $deleted_at
|
* @property string|null $deleted_at
|
||||||
*/
|
*/
|
||||||
@@ -77,7 +77,7 @@ 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)) {
|
if (!is_null($this->meta) && !Helpers::isJson($this->meta)) {
|
||||||
$this->set(
|
$this->set(
|
||||||
'meta',
|
'meta',
|
||||||
json_encode($this->meta)
|
json_encode($this->meta)
|
||||||
|
@@ -125,6 +125,18 @@ class ScheduledTaskTest extends \MailPoetTest {
|
|||||||
expect(json_decode($task->meta, true))->equals($meta);
|
expect(json_decode($task->meta, true))->equals($meta);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testItDoesNotJsonEncodesMetaEqualToNull() {
|
||||||
|
$task = ScheduledTask::create();
|
||||||
|
$meta = null;
|
||||||
|
$task->meta = $meta;
|
||||||
|
$task->save();
|
||||||
|
|
||||||
|
$task = ScheduledTask::findOne($task->id);
|
||||||
|
|
||||||
|
expect(Helpers::isJson($task->meta))->false();
|
||||||
|
expect($task->meta)->equals($meta);
|
||||||
|
}
|
||||||
|
|
||||||
function _after() {
|
function _after() {
|
||||||
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
|
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
|
||||||
\ORM::raw_execute('TRUNCATE ' . ScheduledTaskSubscriber::$_table);
|
\ORM::raw_execute('TRUNCATE ' . ScheduledTaskSubscriber::$_table);
|
||||||
|
@@ -113,6 +113,20 @@ class SendingQueueTest extends \MailPoetTest {
|
|||||||
expect(json_decode($queue->meta, true))->equals($meta);
|
expect(json_decode($queue->meta, true))->equals($meta);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testItDoesNotJsonEncodesMetaEqualToNull() {
|
||||||
|
$queue = SendingQueue::create();
|
||||||
|
$meta = null;
|
||||||
|
$queue->task_id = 0;
|
||||||
|
$queue->newsletter_id = 1;
|
||||||
|
$queue->meta = $meta;
|
||||||
|
$queue->save();
|
||||||
|
|
||||||
|
$queue = SendingQueue::findOne($queue->id);
|
||||||
|
|
||||||
|
expect(Helpers::isJson($queue->meta))->false();
|
||||||
|
expect($queue->meta)->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