protected function ThunderMediaSchemaExtension::resolveFields in Thunder 6.2.x
Add image media field resolvers.
1 call to ThunderMediaSchemaExtension::resolveFields()
- ThunderMediaSchemaExtension::registerResolvers in modules/
thunder_gqls/ src/ Plugin/ GraphQL/ SchemaExtension/ ThunderMediaSchemaExtension.php
File
- modules/
thunder_gqls/ src/ Plugin/ GraphQL/ SchemaExtension/ ThunderMediaSchemaExtension.php, line 41
Class
- ThunderMediaSchemaExtension
- The media schema extension.
Namespace
Drupal\thunder_gqls\Plugin\GraphQL\SchemaExtensionCode
protected function resolveFields() {
// Image.
$this
->resolveMediaInterfaceFields('MediaImage');
$this
->addFieldResolverIfNotExists('MediaImage', 'copyright', $this->builder
->fromPath('entity', 'field_copyright.value'));
$this
->addFieldResolverIfNotExists('MediaImage', 'description', $this->builder
->fromPath('entity', 'field_description.processed'));
$this
->addFieldResolverIfNotExists('MediaImage', 'src', $this->builder
->compose($this->builder
->fromPath('entity', 'field_image.entity'), $this->builder
->produce('image_url')
->map('entity', $this->builder
->fromParent())));
$this
->addFieldResolverIfNotExists('MediaImage', 'derivative', $this->builder
->compose($this->builder
->fromPath('entity', 'field_image.entity'), $this->builder
->produce('image_derivative')
->map('entity', $this->builder
->fromParent())
->map('style', $this->builder
->fromArgument('style')), $this->builder
->callback(function ($values) {
if (!empty($values['url'])) {
return $values + [
'src' => $values['url'],
];
}
return;
})));
$this
->addFieldResolverIfNotExists('MediaImage', 'focalPoint', $this->builder
->compose($this->builder
->fromPath('entity', 'field_image.entity'), $this->builder
->produce('focal_point')
->map('file', $this->builder
->fromParent())));
$this
->addFieldResolverIfNotExists('MediaImage', 'width', $this->builder
->fromPath('entity', 'field_image.width'));
$this
->addFieldResolverIfNotExists('MediaImage', 'height', $this->builder
->fromPath('entity', 'field_image.height'));
$this
->addFieldResolverIfNotExists('MediaImage', 'title', $this->builder
->fromPath('entity', 'field_image.title'));
$this
->addFieldResolverIfNotExists('MediaImage', 'alt', $this->builder
->fromPath('entity', 'field_image.alt'));
$this
->addFieldResolverIfNotExists('MediaImage', 'tags', $this
->fromEntityReference('field_tags'));
$this
->addFieldResolverIfNotExists('MediaImage', 'source', $this->builder
->fromPath('entity', 'field_source.value'));
// Video.
$this
->resolveMediaInterfaceFields('MediaVideo');
$this
->addFieldResolverIfNotExists('MediaVideo', 'src', $this->builder
->fromPath('entity', 'field_media_video_embed_field.value'));
$this
->addFieldResolverIfNotExists('MediaVideo', 'username', $this->builder
->fromPath('entity', 'field_author.value'));
$this
->addFieldResolverIfNotExists('MediaVideo', 'caption', $this->builder
->fromPath('entity', 'field_caption.processed'));
$this
->addFieldResolverIfNotExists('MediaVideo', 'copyright', $this->builder
->fromPath('entity', 'field_copyright.value'));
$this
->addFieldResolverIfNotExists('MediaVideo', 'description', $this->builder
->fromPath('entity', 'field_description.processed'));
$this
->addFieldResolverIfNotExists('MediaVideo', 'source', $this->builder
->fromPath('entity', 'field_source.value'));
}