diff --git a/src/Controller/FileUpload.php b/src/Controller/FileUpload.php index 121e07f..6c08188 100644 --- a/src/Controller/FileUpload.php +++ b/src/Controller/FileUpload.php @@ -13,6 +13,7 @@ use Drupal\Core\Url; use Drupal\jsonapi\Entity\EntityValidationTrait; use Drupal\jsonapi\JsonApiResource\JsonApiDocumentTopLevel; use Drupal\jsonapi\JsonApiResource\NullEntityCollection; +use Drupal\jsonapi\JsonApiResource\ResourceObject; use Drupal\jsonapi\ResourceResponse; use Drupal\jsonapi\LinkManager\LinkManager; use Drupal\jsonapi\ResourceType\ResourceType; @@ -188,7 +189,8 @@ class FileUpload { $links['self']['href'] = Url::fromRoute('jsonapi.file--file.individual', ['entity' => $file->uuid()])->setAbsolute(TRUE)->toString(TRUE)->getGeneratedUrl(); /* $links['self']['href'] = $this->entity->toUrl('jsonapi')->setAbsolute(TRUE)->toString(TRUE)->getGeneratedUrl(); */ - return new ResourceResponse(new JsonApiDocumentTopLevel($file, new NullEntityCollection(), $links), 201, []); + $file_resource_type = reset($resource_type->getRelatableResourceTypesByField($file_field_name)); + return new ResourceResponse(new JsonApiDocumentTopLevel(new ResourceObject($file_resource_type, $file), new NullEntityCollection(), $links), 201, []); } /** diff --git a/tests/src/Kernel/Normalizer/EntityReferenceFieldNormalizerTest.php b/tests/src/Kernel/Normalizer/EntityReferenceFieldNormalizerTest.php index a167d4b..f145520 100644 --- a/tests/src/Kernel/Normalizer/EntityReferenceFieldNormalizerTest.php +++ b/tests/src/Kernel/Normalizer/EntityReferenceFieldNormalizerTest.php @@ -8,6 +8,7 @@ use Drupal\Core\Url; use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; use Drupal\file\Entity\File; +use Drupal\jsonapi\Access\EntityAccessChecker; use Drupal\jsonapi\JsonApiResource\ResourceObject; use Drupal\jsonapi\Normalizer\EntityReferenceFieldNormalizer; use Drupal\jsonapi\Normalizer\Value\CacheableNormalization; @@ -139,7 +140,12 @@ class EntityReferenceFieldNormalizerTest extends JsonapiKernelTestBase { $this->referencingResourceType = $this->container->get('jsonapi.resource_type.repository')->get('node', 'referencer'); $this->normalizer = new EntityReferenceFieldNormalizer( $this->container->get('entity.repository'), - $this->container->get('jsonapi.entity_access_checker') + new EntityAccessChecker( + $this->container->get('jsonapi.resource_type.repository'), + $this->container->get('router.no_access_checks'), + $this->container->get('current_user'), + $this->container->get('entity.repository') + ) ); $this->normalizer->setSerializer($this->container->get('jsonapi.serializer_do_not_use_removal_imminent')); }