Skip to content

Commit 51eb458

Browse files
authored
Merge pull request #53 from tuyakhov/fix_empty_resources
Fix response formatting
2 parents 75bce87 + cb7af52 commit 51eb458

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

src/JsonApiResponseFormatter.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public function format($response)
6161

6262
$apiDocument = $response->data;
6363

64-
if (!$response->isEmpty) {
64+
if (!$response->isEmpty && empty($apiDocument)) {
6565
$apiDocument = ['data' => $response->data];
6666
if (\Yii::$app->controller) {
6767
$apiDocument['links'] = Link::serialize([

tests/JsonApiResponseFormatterTest.php

+27
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,33 @@ public function testFormModelError()
7070
]), $response->content);
7171
}
7272

73+
public function testSuccessModel()
74+
{
75+
$formatter = new JsonApiResponseFormatter();
76+
$response = new Response();
77+
$serializer = new Serializer();
78+
$model = new ResourceModel();
79+
$response->data = $serializer->serialize($model);
80+
$response->setStatusCode(200);
81+
$formatter->format($response);
82+
$this->assertJson($response->content);
83+
$this->assertSame(Json::encode([
84+
'data' => [
85+
'id' => '123',
86+
'type' => 'resource-models',
87+
'attributes' => [
88+
'field1' => 'test',
89+
'field2' => 2,
90+
],
91+
'links' => [
92+
'self' => [
93+
'href' => 'http://example.com/resource/123'
94+
]
95+
]
96+
]
97+
]), $response->content);
98+
}
99+
73100
public function testEmptyData()
74101
{
75102
$formatter = new JsonApiResponseFormatter();

0 commit comments

Comments
 (0)