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) {
|
||||
$this->priority = self::PRIORITY_MEDIUM;
|
||||
}
|
||||
if (!Helpers::isJson($this->meta)) {
|
||||
if (!is_null($this->meta) && !Helpers::isJson($this->meta)) {
|
||||
$this->set(
|
||||
'meta',
|
||||
json_encode($this->meta)
|
||||
|
@ -16,7 +16,7 @@ if (!defined('ABSPATH')) exit;
|
||||
* @property string $newsletter_rendered_subject
|
||||
* @property int $task_id
|
||||
* @property int $newsletter_id
|
||||
* @property string|object $meta
|
||||
* @property string|object|null $meta
|
||||
* @property string|array $subscribers
|
||||
* @property string|null $deleted_at
|
||||
*/
|
||||
@ -77,7 +77,7 @@ class SendingQueue extends Model {
|
||||
json_encode($this->encodeEmojisInBody($this->newsletter_rendered_body))
|
||||
);
|
||||
}
|
||||
if (!Helpers::isJson($this->meta)) {
|
||||
if (!is_null($this->meta) && !Helpers::isJson($this->meta)) {
|
||||
$this->set(
|
||||
'meta',
|
||||
json_encode($this->meta)
|
||||
|
@ -125,6 +125,18 @@ class ScheduledTaskTest extends \MailPoetTest {
|
||||
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() {
|
||||
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
|
||||
\ORM::raw_execute('TRUNCATE ' . ScheduledTaskSubscriber::$_table);
|
||||
|
@ -113,6 +113,20 @@ class SendingQueueTest extends \MailPoetTest {
|
||||
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() {
|
||||
$queue = $this->queue;
|
||||
$newsletter_rendered_body = $this->rendered_body;
|
||||
|
Reference in New Issue
Block a user