22
33namespace Swis \JsonApi \Client \JsonApi ;
44
5- use Art4 \JsonApiClient \DocumentInterface as JsonApiDocumentInterface ;
6- use Art4 \JsonApiClient \Resource \ResourceInterface as JsonApiResourceInterface ;
5+ use Art4 \JsonApiClient \DocumentInterface as Art4JsonApiDocumentInterface ;
6+ use Art4 \JsonApiClient \ResourceCollectionInterface ;
7+ use Art4 \JsonApiClient \ResourceItemInterface ;
78use Art4 \JsonApiClient \Utils \Manager as Art4JsonApiClientManager ;
89use Swis \JsonApi \Client \Collection ;
910use Swis \JsonApi \Client \CollectionDocument ;
@@ -81,12 +82,12 @@ public function deserialize(string $json): DocumentInterface
8182 *
8283 * @return \Art4\JsonApiClient\DocumentInterface
8384 */
84- private function getJsonApiDocument (string $ json ): JsonApiDocumentInterface
85+ private function getJsonApiDocument (string $ json ): Art4JsonApiDocumentInterface
8586 {
8687 /** @var \Art4\JsonApiClient\DocumentInterface $jsonApiDocument */
8788 $ jsonApiDocument = $ this ->manager ->parse ($ json );
8889
89- if (!$ jsonApiDocument instanceof JsonApiDocumentInterface ) {
90+ if (!$ jsonApiDocument instanceof Art4JsonApiDocumentInterface ) {
9091 throw new \DomainException ('Result is not a JSON API Document ' );
9192 }
9293
@@ -100,22 +101,22 @@ private function getJsonApiDocument(string $json): JsonApiDocumentInterface
100101 *
101102 * @return \Swis\JsonApi\Client\Interfaces\DocumentInterface
102103 */
103- protected function buildDataDocument (JsonApiDocumentInterface $ jsonApiDocument ): DocumentInterface
104+ protected function buildDataDocument (Art4JsonApiDocumentInterface $ jsonApiDocument ): DocumentInterface
104105 {
105106 $ data = $ this ->getJsonApiDocumentData ($ jsonApiDocument );
106107 $ includedInDocument = $ this ->getJsonApiDocumentIncluded ($ jsonApiDocument );
107108
108109 $ allHydratedItems = new Collection ();
109110 $ allJsonApiItems = new Collection ();
110111
111- if ($ data-> isCollection () ) {
112+ if ($ data instanceof ResourceCollectionInterface ) {
112113 $ collection = $ this ->hydrator ->hydrateCollection ($ jsonApiDocument ->get ('data ' ));
113114 $ allHydratedItems = $ allHydratedItems ->concat ($ collection );
114115 $ allJsonApiItems = $ allJsonApiItems ->concat ($ jsonApiDocument ->get ('data ' )->asArray ());
115116
116117 $ document = new CollectionDocument ();
117118 $ document ->setData ($ collection );
118- } elseif ($ data-> isItem () ) {
119+ } elseif ($ data instanceof ResourceItemInterface ) {
119120 $ item = $ this ->hydrator ->hydrateItem ($ jsonApiDocument ->get ('data ' ));
120121 $ allHydratedItems ->push ($ item );
121122 $ allJsonApiItems ->push ($ jsonApiDocument ->get ('data ' ));
@@ -147,14 +148,13 @@ protected function buildDataDocument(JsonApiDocumentInterface $jsonApiDocument):
147148 *
148149 * @throws \DomainException
149150 *
150- * @return \Art4\JsonApiClient\Resource\ResourceInterface
151+ * @return \Art4\JsonApiClient\ResourceItemInterface|\Art4\JsonApiClient\ResourceCollectionInterface
151152 */
152- private function getJsonApiDocumentData (JsonApiDocumentInterface $ document ): JsonApiResourceInterface
153+ private function getJsonApiDocumentData (Art4JsonApiDocumentInterface $ document )
153154 {
154- /** @var \Art4\JsonApiClient\Resource\ResourceInterface $resource */
155155 $ resource = $ document ->get ('data ' );
156156
157- if (!$ resource instanceof JsonApiResourceInterface ) {
157+ if (!$ resource instanceof ResourceItemInterface && ! $ resource instanceof ResourceCollectionInterface ) {
158158 throw new \DomainException ('Result is not a Json API Resource ' );
159159 }
160160
@@ -164,9 +164,9 @@ private function getJsonApiDocumentData(JsonApiDocumentInterface $document): Jso
164164 /**
165165 * @param \Art4\JsonApiClient\DocumentInterface $document
166166 *
167- * @return \Art4\JsonApiClient\Resource\Collection |null
167+ * @return \Art4\JsonApiClient\ResourceCollection |null
168168 */
169- private function getJsonApiDocumentIncluded (JsonApiDocumentInterface $ document )
169+ private function getJsonApiDocumentIncluded (Art4JsonApiDocumentInterface $ document )
170170 {
171171 if ($ document ->has ('included ' )) {
172172 return $ document ->get ('included ' );
@@ -180,7 +180,7 @@ private function getJsonApiDocumentIncluded(JsonApiDocumentInterface $document)
180180 *
181181 * @return array
182182 */
183- private function parseLinks (JsonApiDocumentInterface $ document ): array
183+ private function parseLinks (Art4JsonApiDocumentInterface $ document ): array
184184 {
185185 if (!$ document ->has ('links ' )) {
186186 return [];
@@ -194,7 +194,7 @@ private function parseLinks(JsonApiDocumentInterface $document): array
194194 *
195195 * @return \Swis\JsonApi\Client\Errors\ErrorCollection
196196 */
197- private function parseErrors (JsonApiDocumentInterface $ document ): ErrorCollection
197+ private function parseErrors (Art4JsonApiDocumentInterface $ document ): ErrorCollection
198198 {
199199 if (!$ document ->has ('errors ' )) {
200200 return new ErrorCollection ();
@@ -208,7 +208,7 @@ private function parseErrors(JsonApiDocumentInterface $document): ErrorCollectio
208208 *
209209 * @return array
210210 */
211- private function parseMeta (JsonApiDocumentInterface $ document ): array
211+ private function parseMeta (Art4JsonApiDocumentInterface $ document ): array
212212 {
213213 if (!$ document ->has ('meta ' )) {
214214 return [];
0 commit comments