You are here

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\SchemaExtension

Code

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