@@ 18-34 (lines=17) @@ | ||
15 | * deriver = "Drupal\graphql_core\Plugin\Deriver\Fields\ConfigEntityPropertyDeriver", |
|
16 | * ) |
|
17 | */ |
|
18 | class ConfigEntityProperty extends EntityFieldBase { |
|
19 | ||
20 | /** |
|
21 | * {@inheritdoc} |
|
22 | */ |
|
23 | public function resolveValues($value, array $args, ResolveInfo $info) { |
|
24 | $definition = $this->getPluginDefinition(); |
|
25 | $property = $definition['property']; |
|
26 | $result = $value->get($property); |
|
27 | if (($type = $info->getReturnType()->getNamedType()) && $type instanceof AbstractScalarType) { |
|
28 | $result = $type->serialize($result); |
|
29 | } |
|
30 | ||
31 | yield $result; |
|
32 | } |
|
33 | ||
34 | } |
|
35 |
@@ 13-32 (lines=20) @@ | ||
10 | /** |
|
11 | * Base class for entity field plugins. |
|
12 | */ |
|
13 | class EntityFieldBase extends FieldPluginBase { |
|
14 | ||
15 | /** |
|
16 | * {@inheritdoc} |
|
17 | */ |
|
18 | protected function resolveItem($item, array $args, ResolveInfo $info) { |
|
19 | if ($item instanceof FieldItemInterface) { |
|
20 | $definition = $this->getPluginDefinition(); |
|
21 | $property = $definition['property']; |
|
22 | $result = $item->get($property)->getValue(); |
|
23 | ||
24 | if (($type = $info->getReturnType()->getNamedType()) && $type instanceof AbstractScalarType) { |
|
25 | $result = $type->serialize($result); |
|
26 | } |
|
27 | ||
28 | return $result; |
|
29 | } |
|
30 | } |
|
31 | ||
32 | } |
|
33 |