graphql_core_schema-1.0.x-dev/modules/graphql_file_url/src/Plugin/GraphQL/SchemaExtension/FileExtended.php

modules/graphql_file_url/src/Plugin/GraphQL/SchemaExtension/FileExtended.php
<?php

namespace Drupal\graphql_file_url\Plugin\GraphQL\SchemaExtension;

use Drupal\graphql\GraphQL\ResolverBuilder;
use Drupal\graphql\GraphQL\ResolverRegistryInterface;
use Drupal\graphql\Plugin\GraphQL\SchemaExtension\SdlSchemaExtensionPluginBase;
use Drupal\graphql_core_schema\CoreSchemaExtensionInterface;

/**
 * A schema extension for config pages.
 *
 * @SchemaExtension(
 *   id = "graphql_file_url",
 *   name = "File entity extension",
 *   description = "An extension that provides file urls.",
 *   schema = "core_composable"
 * )
 */
class FileExtended extends SdlSchemaExtensionPluginBase implements CoreSchemaExtensionInterface {

  /**
   * {@inheritdoc}
   */
  public function getEntityTypeDependencies() {
    return ['file'];
  }

  /**
   * {@inheritdoc}
   */
  public function getExtensionDependencies() {
    return [];
  }

  /**
   * {@inheritdoc}
   */
  public function registerResolvers(ResolverRegistryInterface $registry): void {
    $builder = new ResolverBuilder();

    $registry->addFieldResolver('File', 'urlAbsolute', $builder->compose(
      $builder->callback(function ($file) {
        return $file->createFileUrl(FALSE);
      })
    ));

    $registry->addFieldResolver('File', 'urlRelative', $builder->compose(
      $builder->callback(function ($file) {
        return $file->createFileUrl(TRUE);
      })
    ));

  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc