You are here

public function ResourceObjectNormalizer::normalize in JSON:API Extras 8.3

Overrides JsonApiNormalizerDecoratorBase::normalize

File

src/Normalizer/ResourceObjectNormalizer.php, line 21

Class

ResourceObjectNormalizer
Decorates the JSON:API ResourceObjectNormalizer.

Namespace

Drupal\jsonapi_extras\Normalizer

Code

public function normalize($object, $format = NULL, array $context = []) {
  assert($object instanceof ResourceObject);
  $resource_type = $object
    ->getResourceType();
  $cacheable_normalization = parent::normalize($object, $format, $context);
  assert($cacheable_normalization instanceof CacheableNormalization);
  if (is_subclass_of($resource_type
    ->getDeserializationTargetClass(), ConfigEntityInterface::class)) {
    return new CacheableNormalization($cacheable_normalization, static::enhanceConfigFields($object, $cacheable_normalization
      ->getNormalization(), $resource_type));
  }
  return $cacheable_normalization;
}