ConfigEntityNormalizer.php in JSON:API Extras 8.2
File
src/Normalizer/ConfigEntityNormalizer.php
View source
<?php
namespace Drupal\jsonapi_extras\Normalizer;
use Drupal\jsonapi\Normalizer\ConfigEntityNormalizer as JsonapiConfigEntityNormalizer;
use Drupal\jsonapi\ResourceType\ResourceType;
class ConfigEntityNormalizer extends JsonapiConfigEntityNormalizer {
use EntityNormalizerTrait;
protected function getFields($entity, $bundle, ResourceType $resource_type) {
$enabled_public_fields = parent::getFields($entity, $bundle, $resource_type);
foreach ($enabled_public_fields as $field_name => &$field_value) {
$enhancer = $resource_type
->getFieldEnhancer($field_name);
if (!$enhancer) {
continue;
}
$field_value = $enhancer
->undoTransform($field_value);
}
return $enabled_public_fields;
}
protected function prepareInput(array $data, ResourceType $resource_type, $format = NULL, array $context = []) {
foreach ($data as $public_field_name => &$field_value) {
$enhancer = $resource_type
->getFieldEnhancer($public_field_name);
if (!$enhancer) {
continue;
}
$field_value = $enhancer
->transform($field_value);
}
return parent::prepareInput($data, $resource_type, $format, $context);
}
}