Code Duplication    Length = 37-55 lines in 4 locations

modules/graphql_core/src/Plugin/GraphQL/Fields/Menu/MenuByName.php 1 location

@@ 27-63 (lines=37) @@
24
 *   }
25
 * )
26
 */
27
class MenuByName extends FieldPluginBase implements ContainerFactoryPluginInterface {
28
  use DependencySerializationTrait;
29
30
  /**
31
   * The entity type manager.
32
   *
33
   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
34
   */
35
  protected $entityTypeManager;
36
37
  /**
38
   * {@inheritdoc}
39
   */
40
  public static function create(ContainerInterface $container, array $configuration, $pluginId, $pluginDefinition) {
41
    return new static($configuration, $pluginId, $pluginDefinition, $container->get('entity_type.manager'));
42
  }
43
44
  /**
45
   * {@inheritdoc}
46
   */
47
  public function __construct(array $configuration, $pluginId, $pluginDefinition, EntityTypeManagerInterface $entityTypeManager) {
48
    $this->entityTypeManager = $entityTypeManager;
49
    parent::__construct($configuration, $pluginId, $pluginDefinition);
50
  }
51
52
  /**
53
   * {@inheritdoc}
54
   */
55
  public function resolveValues($value, array $args, ResolveInfo $info) {
56
    $entity = $this->entityTypeManager->getStorage('menu')->load($args['name']);
57
58
    if ($entity instanceof MenuInterface) {
59
      yield $entity;
60
    }
61
  }
62
63
}
64

modules/graphql_core/src/Plugin/GraphQL/Fields/Routing/ExternalUrl/ExternalRequest.php 1 location

@@ 23-71 (lines=49) @@
20
 *   parents = {"ExternalUrl"}
21
 * )
22
 */
23
class ExternalRequest extends FieldPluginBase implements ContainerFactoryPluginInterface {
24
  use DependencySerializationTrait;
25
26
  /**
27
   * @var \GuzzleHttp\ClientInterface
28
   */
29
  protected $httpClient;
30
31
  /**
32
   * {@inheritdoc}
33
   */
34
  public static function create(
35
    ContainerInterface $container,
36
    array $configuration,
37
    $plugin_id,
38
    $plugin_definition
39
  ) {
40
    return new static(
41
      $configuration,
42
      $plugin_id,
43
      $plugin_definition,
44
      $container->get('http_client')
45
    );
46
  }
47
48
  /**
49
   * {@inheritdoc}
50
   */
51
  public function __construct(
52
    array $configuration,
53
    $pluginId,
54
    $pluginDefinition,
55
    ClientInterface $httpClient
56
  ) {
57
    $this->httpClient = $httpClient;
58
    parent::__construct($configuration, $pluginId, $pluginDefinition);
59
  }
60
61
62
  /**
63
   * {@inheritdoc}
64
   */
65
  protected function resolveValues($value, array $args, ResolveInfo $info) {
66
    if ($value instanceof Url) {
67
      yield $this->httpClient->request('GET', $value->toString());
68
    }
69
  }
70
71
}
72

modules/graphql_core/src/Plugin/GraphQL/Fields/Entity/EntityTranslation.php 1 location

@@ 25-66 (lines=42) @@
22
 *   }
23
 * )
24
 */
25
class EntityTranslation extends FieldPluginBase implements ContainerFactoryPluginInterface {
26
27
  use DependencySerializationTrait;
28
29
  /**
30
   * The entity repository.
31
   *
32
   * @var \Drupal\Core\Entity\EntityRepositoryInterface
33
   */
34
  protected $entityRepository;
35
36
  /**
37
   * {@inheritdoc}
38
   */
39
  public function __construct(array $configuration, $pluginId, $pluginDefinition, EntityRepositoryInterface $entityRepository) {
40
    parent::__construct($configuration, $pluginId, $pluginDefinition);
41
42
    $this->entityRepository = $entityRepository;
43
  }
44
45
  /**
46
   * {@inheritdoc}
47
   */
48
  public static function create(ContainerInterface $container, array $configuration, $pluginId, $pluginDefinition) {
49
    return new static(
50
      $configuration,
51
      $pluginId,
52
      $pluginDefinition,
53
      $container->get('entity.repository')
54
    );
55
  }
56
57
  /**
58
   * {@inheritdoc}
59
   */
60
  public function resolveValues($value, array $args, ResolveInfo $info) {
61
    if ($value instanceof EntityInterface) {
62
      yield $this->entityRepository->getTranslationFromContext($value, $args['language']);
63
    }
64
  }
65
66
}
67

modules/graphql_core/src/Plugin/GraphQL/Fields/Routing/InternalUrl/Translate.php 1 location

@@ 26-80 (lines=55) @@
23
 *   }
24
 * )
25
 */
26
class Translate extends FieldPluginBase implements ContainerFactoryPluginInterface {
27
  use DependencySerializationTrait;
28
29
  /**
30
   * The language manager service.
31
   *
32
   * @var \Drupal\Core\Language\LanguageManagerInterface
33
   */
34
  protected $languageManager;
35
36
  /**
37
   * Alias constructor.
38
   *
39
   * @param array $configuration
40
   *   The plugin configuration array.
41
   * @param string $pluginId
42
   *   The plugin id.
43
   * @param mixed $pluginDefinition
44
   *   The plugin definition.
45
   * @param \Drupal\Core\Language\LanguageManagerInterface $languageManager
46
   *   The language manager service.
47
   */
48
  public function __construct(
49
    array $configuration,
50
    $pluginId,
51
    $pluginDefinition,
52
    LanguageManagerInterface $languageManager
53
  ) {
54
    parent::__construct($configuration, $pluginId, $pluginDefinition);
55
    $this->languageManager = $languageManager;
56
  }
57
58
  /**
59
   * {@inheritdoc}
60
   */
61
  public static function create(ContainerInterface $container, array $configuration, $pluginId, $pluginDefinition) {
62
    return new static(
63
      $configuration,
64
      $pluginId,
65
      $pluginDefinition,
66
      $container->get('language_manager')
67
    );
68
  }
69
70
  /**
71
   * {@inheritdoc}
72
   */
73
  public function resolveValues($value, array $args, ResolveInfo $info) {
74
    if ($value instanceof Url) {
75
      $language =  $this->languageManager->getLanguage($args['language']);
76
      yield (clone $value)->setOption('language', $language);
77
    }
78
  }
79
80
}
81