You are here

public function Route::resolveValues in GraphQL 8.3

Retrieve the list of field values.

Always returns a list of field values. Even for single value fields. Single/multi field handling is responsibility of the base class.

Parameters

mixed $value: The current object value.

array $args: Field arguments.

$context: The resolve context.

\GraphQL\Type\Definition\ResolveInfo $info: The resolve info object.

Return value

\Generator The value generator.

Overrides FieldPluginBase::resolveValues

File

modules/graphql_core/src/Plugin/GraphQL/Fields/Routing/Route.php, line 151

Class

Route
Retrieve a route object based on a path.

Namespace

Drupal\graphql_core\Plugin\GraphQL\Fields\Routing

Code

public function resolveValues($value, array $args, ResolveContext $context, ResolveInfo $info) {
  if ($this->redirectRepository) {
    $currentLanguage = $this->languageManager
      ->getCurrentLanguage()
      ->getId();
    $processedPath = $this->pathProcessor
      ->processInbound($args['path'], Request::create($args['path']));
    if ($redirect = $this->redirectRepository
      ->findMatchingRedirect($processedPath, [], $currentLanguage)) {
      (yield $redirect);
      return;
    }
  }
  if (($url = $this->pathValidator
    ->getUrlIfValidWithoutAccessCheck($args['path'])) && $url
    ->access()) {
    (yield $url);
  }
  else {
    (yield (new CacheableValue(NULL))
      ->addCacheTags([
      '4xx-response',
    ]));
  }
}