From 2760126de7c1d9674e299029db4c8ecb4643c13a Mon Sep 17 00:00:00 2001 From: lukinovec Date: Mon, 14 Aug 2023 13:21:13 +0200 Subject: [PATCH] Use `$dataEncoded` bool instead of `$dataEncodingStatus` string --- src/VirtualColumn.php | 16 +++++++--------- tests/VirtualColumnTest.php | 14 +++++++------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/VirtualColumn.php b/src/VirtualColumn.php index 3f96af4..9f90c49 100644 --- a/src/VirtualColumn.php +++ b/src/VirtualColumn.php @@ -23,14 +23,12 @@ trait VirtualColumn * We need this property, because both created & saved event listeners * decode the data (to take precedence before other created & saved) * listeners, but we don't want the data to be decoded twice. - * - * @var string */ - public $dataEncodingStatus = 'decoded'; + public bool $dataEncoded = false; protected static function decodeVirtualColumn(self $model): void { - if ($model->dataEncodingStatus === 'decoded') { + if (! $model->dataEncoded) { return; } @@ -53,12 +51,12 @@ trait VirtualColumn $model->setAttribute(static::getDataColumn(), null); - $model->dataEncodingStatus = 'decoded'; + $model->dataEncoded = false; } protected static function encodeAttributes(self $model): void { - if ($model->dataEncodingStatus === 'encoded') { + if ($model->dataEncoded) { return; } @@ -75,7 +73,7 @@ trait VirtualColumn } } - $model->dataEncodingStatus = 'encoded'; + $model->dataEncoded = true; } public static function valueEncrypted(string $value): bool @@ -93,7 +91,7 @@ trait VirtualColumn { static::registerAfterListener('retrieved', function ($model) { // We always decode after model retrieval. - $model->dataEncodingStatus = 'encoded'; + $model->dataEncoded = true; static::decodeVirtualColumn($model); }); @@ -106,7 +104,7 @@ trait VirtualColumn protected function decodeIfEncoded() { - if ($this->dataEncodingStatus === 'encoded') { + if ($this->dataEncoded) { static::decodeVirtualColumn($this); } } diff --git a/tests/VirtualColumnTest.php b/tests/VirtualColumnTest.php index a35043e..948feba 100644 --- a/tests/VirtualColumnTest.php +++ b/tests/VirtualColumnTest.php @@ -63,25 +63,25 @@ class VirtualColumnTest extends TestCase public function model_is_always_decoded_when_accessed_by_user_event() { MyModel::retrieved(function (MyModel $model) { - $this->assertSame('decoded', $model->dataEncodingStatus); + $this->assertFalse($model->dataEncoded); }); MyModel::saving(function (MyModel $model) { - $this->assertSame('decoded', $model->dataEncodingStatus); + $this->assertFalse($model->dataEncoded); }); MyModel::updating(function (MyModel $model) { - $this->assertSame('decoded', $model->dataEncodingStatus); + $this->assertFalse($model->dataEncoded); }); MyModel::creating(function (MyModel $model) { - $this->assertSame('decoded', $model->dataEncodingStatus); + $this->assertFalse($model->dataEncoded); }); MyModel::saved(function (MyModel $model) { - $this->assertSame('decoded', $model->dataEncodingStatus); + $this->assertFalse($model->dataEncoded); }); MyModel::updated(function (MyModel $model) { - $this->assertSame('decoded', $model->dataEncodingStatus); + $this->assertFalse($model->dataEncoded); }); MyModel::created(function (MyModel $model) { - $this->assertSame('decoded', $model->dataEncodingStatus); + $this->assertFalse($model->dataEncoded); });