Skip to content

Commit 64f3d31

Browse files
authored
Merge pull request #20 from swisnl/fix-empty-attributes
Do not add attributes to item when empty
2 parents 81f4cfb + aa34ecc commit 64f3d31

File tree

3 files changed

+37
-4
lines changed

3 files changed

+37
-4
lines changed

src/Items/JenssegersItem.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,14 @@ public function toJsonApiArray(): array
6060
$data['id'] = $this->getId();
6161
}
6262

63-
if (!empty($this->getAttributes())) {
64-
$data['attributes'] = $this->toArray();
63+
$attributes = $this->toArray();
64+
if (!empty($attributes)) {
65+
$data['attributes'] = $attributes;
6566
}
6667

67-
if (!empty($this->getRelationships())) {
68-
$data['relationships'] = $this->getRelationships();
68+
$relationships = $this->getRelationships();
69+
if (!empty($relationships)) {
70+
$data['relationships'] = $relationships;
6971
}
7072

7173
return $data;

tests/Items/JenssegersItemTest.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Swis\JsonApi\Client\Items\JenssegersItem;
66
use Swis\JsonApi\Client\Tests\AbstractTest;
77
use Swis\JsonApi\Client\Tests\Mocks\Items\Jenssegers\WithGetMutatorJenssegersItem;
8+
use Swis\JsonApi\Client\Tests\Mocks\Items\Jenssegers\WithHiddenJenssegersItem;
89

910
class JenssegersItemTest extends AbstractTest
1011
{
@@ -151,4 +152,22 @@ public function it_adds_unknown_relationships_in_snake_case()
151152

152153
$this->assertTrue($item->hasRelationship('some_relation'));
153154
}
155+
156+
/**
157+
* @test
158+
*/
159+
public function is_does_not_show_attributes_in_to_json_api_array_when_it_has_no_attributes()
160+
{
161+
$item = new WithHiddenJenssegersItem($this->attributes);
162+
$item->setType('testType');
163+
$item->setId(1234);
164+
165+
$this->assertEquals(
166+
[
167+
'type' => 'testType',
168+
'id' => 1234,
169+
],
170+
$item->toJsonApiArray()
171+
);
172+
}
154173
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace Swis\JsonApi\Client\Tests\Mocks\Items\Jenssegers;
4+
5+
use Swis\JsonApi\Client\Items\JenssegersItem;
6+
7+
class WithHiddenJenssegersItem extends JenssegersItem
8+
{
9+
protected $hidden = [
10+
'testKey',
11+
];
12+
}

0 commit comments

Comments
 (0)