@@ -84,7 +84,6 @@ public function deserialize(string $json): DocumentInterface
84
84
*/
85
85
private function getJsonApiDocument (string $ json ): Art4JsonApiDocumentInterface
86
86
{
87
- /** @var \Art4\JsonApiClient\DocumentInterface $jsonApiDocument */
88
87
$ jsonApiDocument = $ this ->manager ->parse ($ json );
89
88
90
89
if (!$ jsonApiDocument instanceof Art4JsonApiDocumentInterface) {
@@ -109,20 +108,20 @@ protected function buildDataDocument(Art4JsonApiDocumentInterface $jsonApiDocume
109
108
$ allHydratedItems = new Collection ();
110
109
$ allJsonApiItems = new Collection ();
111
110
112
- if ($ data instanceof ResourceCollectionInterface) {
113
- $ collection = $ this ->hydrator ->hydrateCollection ($ jsonApiDocument ->get ('data ' ));
114
- $ allHydratedItems = $ allHydratedItems ->concat ($ collection );
115
- $ allJsonApiItems = $ allJsonApiItems ->concat ($ jsonApiDocument ->get ('data ' )->asArray ());
116
-
117
- $ document = new CollectionDocument ();
118
- $ document ->setData ($ collection );
119
- } elseif ($ data instanceof ResourceItemInterface) {
120
- $ item = $ this ->hydrator ->hydrateItem ($ jsonApiDocument ->get ('data ' ));
111
+ if ($ data instanceof ResourceItemInterface) {
112
+ $ item = $ this ->hydrator ->hydrateItem ($ data );
121
113
$ allHydratedItems ->push ($ item );
122
- $ allJsonApiItems ->push ($ jsonApiDocument -> get ( ' data ' ) );
114
+ $ allJsonApiItems ->push ($ data );
123
115
124
116
$ document = new ItemDocument ();
125
117
$ document ->setData ($ item );
118
+ } elseif ($ data instanceof ResourceCollectionInterface) {
119
+ $ collection = $ this ->hydrator ->hydrateCollection ($ data );
120
+ $ allHydratedItems = $ allHydratedItems ->concat ($ collection );
121
+ $ allJsonApiItems = $ allJsonApiItems ->concat (new Collection ($ data ->asArray ()));
122
+
123
+ $ document = new CollectionDocument ();
124
+ $ document ->setData ($ collection );
126
125
} else {
127
126
throw new \DomainException ('Data is not Collection or Item ' );
128
127
}
@@ -131,7 +130,7 @@ protected function buildDataDocument(Art4JsonApiDocumentInterface $jsonApiDocume
131
130
if ($ includedInDocument ) {
132
131
$ included = $ this ->hydrator ->hydrateCollection ($ includedInDocument );
133
132
$ allHydratedItems = $ allHydratedItems ->concat ($ included );
134
- $ allJsonApiItems = $ allJsonApiItems ->concat ($ includedInDocument ->asArray ());
133
+ $ allJsonApiItems = $ allJsonApiItems ->concat (new Collection ( $ includedInDocument ->asArray () ));
135
134
}
136
135
137
136
$ this ->hydrator ->hydrateRelationships ($ allJsonApiItems , $ allHydratedItems );
0 commit comments