jsonapi.services.yml | 2 +- src/EventSubscriber/ResourceTypeChangeSubscriber.php | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/jsonapi.services.yml b/jsonapi.services.yml index e18fddb..292d551 100644 --- a/jsonapi.services.yml +++ b/jsonapi.services.yml @@ -163,7 +163,7 @@ services: - { name: event_subscriber } jsonapi.resource_type_change_subscriber: class: Drupal\jsonapi\EventSubscriber\ResourceTypeChangeSubscriber - arguments: ['@router.builder'] + arguments: ['@jsonapi.resource_type.repository', '@router.builder'] tags: - { name: event_subscriber } - { name: cache_tags_invalidator} diff --git a/src/EventSubscriber/ResourceTypeChangeSubscriber.php b/src/EventSubscriber/ResourceTypeChangeSubscriber.php index 1c7877f..eb40922 100644 --- a/src/EventSubscriber/ResourceTypeChangeSubscriber.php +++ b/src/EventSubscriber/ResourceTypeChangeSubscriber.php @@ -5,6 +5,7 @@ namespace Drupal\jsonapi\EventSubscriber; use Drupal\Core\Cache\CacheableResponseInterface; use Drupal\Core\Cache\CacheTagsInvalidatorInterface; use Drupal\Core\Routing\RouteBuilderInterface; +use Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpKernel\Event\FilterResponseEvent; use Symfony\Component\HttpKernel\KernelEvents; @@ -17,6 +18,13 @@ use Symfony\Component\HttpKernel\KernelEvents; class ResourceTypeChangeSubscriber implements EventSubscriberInterface, CacheTagsInvalidatorInterface { /** + * The JSON API resource type repository. + * + * @var \Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface + */ + protected $resourceTypeRepository; + + /** * The route building service. * * @var \Drupal\Core\Routing\RouteBuilderInterface @@ -26,10 +34,13 @@ class ResourceTypeChangeSubscriber implements EventSubscriberInterface, CacheTag /** * Constructs a ResourceTypeChangeSubscriber object. * + * @param \Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface $resource_type_repository + * The JSON API resource type repository. * @param \Drupal\Core\Routing\RouteBuilderInterface $route_builder * The route building service. */ - public function __construct(RouteBuilderInterface $route_builder) { + public function __construct(ResourceTypeRepositoryInterface $resource_type_repository, RouteBuilderInterface $route_builder) { + $this->resourceTypeRepository = $resource_type_repository; $this->routeBuilder = $route_builder; }