You are here

protected function TopicSchemaExtension::addQueryFields in Open Social 10.3.x

Registers type and field resolvers in the query type.

Parameters

\Drupal\graphql\GraphQL\ResolverRegistryInterface $registry: The resolver registry.

\Drupal\graphql\GraphQL\ResolverBuilder $builder: The resolver builder.

1 call to TopicSchemaExtension::addQueryFields()
TopicSchemaExtension::registerResolvers in modules/social_features/social_topic/src/Plugin/GraphQL/SchemaExtension/TopicSchemaExtension.php

File

modules/social_features/social_topic/src/Plugin/GraphQL/SchemaExtension/TopicSchemaExtension.php, line 129

Class

TopicSchemaExtension
Adds topic data to the Open Social GraphQL API.

Namespace

Drupal\social_topic\Plugin\GraphQL\SchemaExtension

Code

protected function addQueryFields(ResolverRegistryInterface $registry, ResolverBuilder $builder) {
  $registry
    ->addFieldResolver('Query', 'topics', $builder
    ->produce('query_topic')
    ->map('after', $builder
    ->fromArgument('after'))
    ->map('before', $builder
    ->fromArgument('before'))
    ->map('first', $builder
    ->fromArgument('first'))
    ->map('last', $builder
    ->fromArgument('last'))
    ->map('reverse', $builder
    ->fromArgument('reverse'))
    ->map('sortKey', $builder
    ->fromArgument('sortKey')));
  $registry
    ->addFieldResolver('Query', 'topicsByType', $builder
    ->produce('query_topic_by_type')
    ->map('type', $builder
    ->fromArgument('type'))
    ->map('after', $builder
    ->fromArgument('after'))
    ->map('before', $builder
    ->fromArgument('before'))
    ->map('first', $builder
    ->fromArgument('first'))
    ->map('last', $builder
    ->fromArgument('last'))
    ->map('reverse', $builder
    ->fromArgument('reverse'))
    ->map('sortKey', $builder
    ->fromArgument('sortKey')));
  $registry
    ->addFieldResolver('Query', 'topic', $builder
    ->produce('entity_load_by_uuid')
    ->map('type', $builder
    ->fromValue('node'))
    ->map('bundles', $builder
    ->fromValue([
    'topic',
  ]))
    ->map('uuid', $builder
    ->fromArgument('id')));
  $registry
    ->addFieldResolver('Query', 'topicTypes', $builder
    ->produce('taxonomy_load_tree')
    ->map('vid', $builder
    ->fromValue('topic_types'))
    ->map('parent', $builder
    ->fromValue(0)));
}