private function StaticDataDefinitionExtractor::extractConfigEntityType in JSON:API Schema 8
1 call to StaticDataDefinitionExtractor::extractConfigEntityType()
- StaticDataDefinitionExtractor::extract in src/
StaticDataDefinitionExtractor.php - Extracts the data definition information for an entity type and bundle.
File
- src/
StaticDataDefinitionExtractor.php, line 117
Class
- StaticDataDefinitionExtractor
- Extracts the data definition for entities of an entity type.
Namespace
Drupal\jsonapi_schemaCode
private function extractConfigEntityType(ConfigEntityTypeInterface $entity_type, $bundle) {
$data_type = sprintf('entity:%s', $entity_type
->id());
if ($entity_type
->hasKey('bundle')) {
$data_type .= ':' . $bundle;
}
$config_definition = $this->typedConfigManager
->getDefinition(sprintf('%s.%s', $entity_type
->getConfigPrefix(), static::BOGUS_CONFIG_ENTITY_ID), FALSE);
$definition = MapDataDefinition::createFromDataType($data_type);
foreach ($entity_type
->getPropertiesToExport(static::BOGUS_CONFIG_ENTITY_ID) as $field_name) {
$field_schema = NestedArray::getValue($config_definition, [
'mapping',
$field_name,
]) ?: [];
$definition
->setPropertyDefinition($field_name, $this
->createDataDefinition($field_schema));
}
return $definition;
}