You are here

class ResourceTypeConverter in JSON:API 8.2

Same name and namespace in other branches
  1. 8 src/ParamConverter/ResourceTypeConverter.php \Drupal\jsonapi\ParamConverter\ResourceTypeConverter

Parameter converter for upcasting JSON:API resource type names to objects.

@internal JSON:API maintains no PHP API since its API is the HTTP API. This class may change at any time and this will break any dependencies on it.

Hierarchy

Expanded class hierarchy of ResourceTypeConverter

See also

https://www.drupal.org/project/jsonapi/issues/3032787

jsonapi.api.php

1 file declares its use of ResourceTypeConverter
Routes.php in src/Routing/Routes.php
1 string reference to 'ResourceTypeConverter'
jsonapi.services.yml in ./jsonapi.services.yml
jsonapi.services.yml
1 service uses ResourceTypeConverter
paramconverter.jsonapi.resource_type in ./jsonapi.services.yml
Drupal\jsonapi\ParamConverter\ResourceTypeConverter

File

src/ParamConverter/ResourceTypeConverter.php, line 18

Namespace

Drupal\jsonapi\ParamConverter
View source
class ResourceTypeConverter implements ParamConverterInterface {

  /**
   * The route parameter type to match.
   *
   * @var string
   */
  const PARAM_TYPE_ID = 'jsonapi_resource_type';

  /**
   * The JSON:API resource type repository.
   *
   * @var \Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface
   */
  protected $resourceTypeRepository;

  /**
   * ResourceTypeConverter constructor.
   *
   * @param \Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface $resource_type_repository
   *   The JSON:API resource type repository.
   */
  public function __construct(ResourceTypeRepositoryInterface $resource_type_repository) {
    $this->resourceTypeRepository = $resource_type_repository;
  }

  /**
   * {@inheritdoc}
   */
  public function convert($value, $definition, $name, array $defaults) {
    return $this->resourceTypeRepository
      ->getByTypeName($value);
  }

  /**
   * {@inheritdoc}
   */
  public function applies($definition, $name, Route $route) {
    return !empty($definition['type']) && $definition['type'] === static::PARAM_TYPE_ID;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ResourceTypeConverter::$resourceTypeRepository protected property The JSON:API resource type repository.
ResourceTypeConverter::applies public function Determines if the converter applies to a specific route and variable. Overrides ParamConverterInterface::applies
ResourceTypeConverter::convert public function Converts path variables to their corresponding objects. Overrides ParamConverterInterface::convert
ResourceTypeConverter::PARAM_TYPE_ID constant The route parameter type to match.
ResourceTypeConverter::__construct public function ResourceTypeConverter constructor.