Skip to content
Snippets Groups Projects
Commit ad45ecb3 authored by Brad Jones's avatar Brad Jones Committed by Björn Brala
Browse files

Issue #3048718 by bradjones1, richgerdes, bbrala, e0ipso: Remove schema...

Issue #3048718 by bradjones1, richgerdes, bbrala, e0ipso: Remove schema alterations for ResourceType::getPublicName() and ResourceType::isFieldEnabled()
parent 3b321b21
No related branches found
No related tags found
1 merge request!13Issue #3048718: Remove schema alterations for ResourceType::getPublicName() and ResourceType::isFieldEnabled()
...@@ -4,6 +4,7 @@ namespace Drupal\jsonapi_extras\Normalizer; ...@@ -4,6 +4,7 @@ namespace Drupal\jsonapi_extras\Normalizer;
use Drupal\Component\Utility\NestedArray; use Drupal\Component\Utility\NestedArray;
use Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface; use Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface;
use Drupal\jsonapi_extras\ResourceType\ConfigurableResourceType;
use Drupal\schemata_json_schema\Normalizer\jsonapi\SchemataSchemaNormalizer as SchemataJsonSchemaSchemataSchemaNormalizer; use Drupal\schemata_json_schema\Normalizer\jsonapi\SchemataSchemaNormalizer as SchemataJsonSchemaSchemataSchemaNormalizer;
/** /**
...@@ -42,7 +43,7 @@ class SchemataSchemaNormalizer extends SchemataJsonSchemaSchemataSchemaNormalize ...@@ -42,7 +43,7 @@ class SchemataSchemaNormalizer extends SchemataJsonSchemaSchemataSchemaNormalize
$bundle $bundle
); );
if (!$resource_type) { if (!$resource_type || !$resource_type instanceof ConfigurableResourceType) {
return $normalized; return $normalized;
} }
...@@ -57,26 +58,15 @@ class SchemataSchemaNormalizer extends SchemataJsonSchemaSchemataSchemaNormalize ...@@ -57,26 +58,15 @@ class SchemataSchemaNormalizer extends SchemataJsonSchemaSchemataSchemaNormalize
if (!isset($root[$property_type]['required'])) { if (!isset($root[$property_type]['required'])) {
$root[$property_type]['required'] = []; $root[$property_type]['required'] = [];
} }
$required_fields = []; $properties = NestedArray::getValue($root, [$property_type, 'properties']) ?: [];
$properties = NestedArray::getValue($root, [$property_type, 'properties']);
$properties = $properties ?: [];
foreach ($properties as $fieldname => $schema) { foreach ($properties as $fieldname => $schema) {
unset($properties[$fieldname]); if ($enhancer = $resource_type->getFieldEnhancer($resource_type->getFieldByPublicName($fieldname)->getInternalName())) {
$root[$property_type]['properties'][$fieldname] = array_merge(
if (!$resource_type->isFieldEnabled($fieldname)) { array_intersect_key($root[$property_type]['properties'][$fieldname], array_flip(['title', 'description'])),
// If the field is disabled, do nothing after removal. $enhancer->getOutputJsonSchema()
continue; );
}
else {
// Otherwise, substitute the public name.
$public_name = $resource_type->getPublicName($fieldname);
$properties[$public_name] = $schema;
if (in_array($fieldname, $root[$property_type]['required'])) {
$required_fields[] = $public_name;
}
} }
} }
$root[$property_type]['required'] = $required_fields;
} }
return $normalized; return $normalized;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment