You are here

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_schema

Code

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;
}