@@ -84,7 +84,6 @@ public function deserialize(string $json): DocumentInterface
8484 */
8585 private function getJsonApiDocument (string $ json ): Art4JsonApiDocumentInterface
8686 {
87- /** @var \Art4\JsonApiClient\DocumentInterface $jsonApiDocument */
8887 $ jsonApiDocument = $ this ->manager ->parse ($ json );
8988
9089 if (!$ jsonApiDocument instanceof Art4JsonApiDocumentInterface) {
@@ -109,20 +108,20 @@ protected function buildDataDocument(Art4JsonApiDocumentInterface $jsonApiDocume
109108 $ allHydratedItems = new Collection ();
110109 $ allJsonApiItems = new Collection ();
111110
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 );
121113 $ allHydratedItems ->push ($ item );
122- $ allJsonApiItems ->push ($ jsonApiDocument -> get ( ' data ' ) );
114+ $ allJsonApiItems ->push ($ data );
123115
124116 $ document = new ItemDocument ();
125117 $ 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 );
126125 } else {
127126 throw new \DomainException ('Data is not Collection or Item ' );
128127 }
@@ -131,7 +130,7 @@ protected function buildDataDocument(Art4JsonApiDocumentInterface $jsonApiDocume
131130 if ($ includedInDocument ) {
132131 $ included = $ this ->hydrator ->hydrateCollection ($ includedInDocument );
133132 $ allHydratedItems = $ allHydratedItems ->concat ($ included );
134- $ allJsonApiItems = $ allJsonApiItems ->concat ($ includedInDocument ->asArray ());
133+ $ allJsonApiItems = $ allJsonApiItems ->concat (new Collection ( $ includedInDocument ->asArray () ));
135134 }
136135
137136 $ this ->hydrator ->hydrateRelationships ($ allJsonApiItems , $ allHydratedItems );
0 commit comments