src/EventSubscriber/ResourceResponseSubscriber.php | 5 ++++- tests/src/Functional/ResourceTestBase.php | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/EventSubscriber/ResourceResponseSubscriber.php b/src/EventSubscriber/ResourceResponseSubscriber.php index 7d96e71..bfc12ce 100644 --- a/src/EventSubscriber/ResourceResponseSubscriber.php +++ b/src/EventSubscriber/ResourceResponseSubscriber.php @@ -8,6 +8,8 @@ use Drupal\Core\Cache\CacheableResponseInterface; use Drupal\Core\Render\RenderContext; use Drupal\Core\Render\RendererInterface; use Drupal\jsonapi\Normalizer\Value\JsonApiDocumentTopLevelNormalizerValue; +use Drupal\jsonapi\Normalizer\Value\RelationshipNormalizerValue; +use Drupal\jsonapi\Normalizer\Value\ValueExtractorInterface; use Drupal\jsonapi\ResourceResponse; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpFoundation\Request; @@ -142,7 +144,8 @@ class ResourceResponseSubscriber implements EventSubscriberInterface { } } - protected static function toArray(JsonApiDocumentTopLevelNormalizerValue $jsonapi_doc_object) { + protected static function toArray(ValueExtractorInterface $jsonapi_doc_object) { + assert($jsonapi_doc_object instanceof JsonApiDocumentTopLevelNormalizerValue || $jsonapi_doc_object instanceof RelationshipNormalizerValue); $jsonapi_doc_array = $jsonapi_doc_object->rasterizeValue(); $included = array_filter($jsonapi_doc_object->rasterizeIncludes()); if (!empty($included)) { diff --git a/tests/src/Functional/ResourceTestBase.php b/tests/src/Functional/ResourceTestBase.php index b1e0d1c..807dcd0 100644 --- a/tests/src/Functional/ResourceTestBase.php +++ b/tests/src/Functional/ResourceTestBase.php @@ -326,7 +326,7 @@ abstract class ResourceTestBase extends BrowserTestBase { // Pass a Request object to the normalizer; this will be considered the // "current request" for generating the "self" link. 'request' => Request::create($url->toString(TRUE)->getGeneratedUrl()), - ]); + ])->rasterizeValue(); } /**