Class: ElasticGraph::GraphQL::Resolvers::GraphQLAdapterBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/elastic_graph/graphql/resolvers/graphql_adapter_builder.rb

Overview

Provides an adapter to the GraphQL gem by building a resolver implementation hash as documented here:

graphql-ruby.org/schema/sdl.html

Instance Method Summary collapse

Constructor Details

#initialize(runtime_metadata:, named_resolvers:, query_adapter:) ⇒ GraphQLAdapterBuilder

Returns a new instance of GraphQLAdapterBuilder.



18
19
20
21
22
23
24
25
26
# File 'lib/elastic_graph/graphql/resolvers/graphql_adapter_builder.rb', line 18

def initialize(runtime_metadata:, named_resolvers:, query_adapter:)
  @runtime_metadata = 
  @resolvers_by_name_and_field_config = named_resolvers.transform_values do |resolver_constructor|
    ::Hash.new do |hash, field_config|
      hash[field_config] = resolver_constructor.call(field_config)
    end
  end
  @query_adapter = query_adapter
end

Instance Method Details

#buildObject



28
29
30
31
32
# File 'lib/elastic_graph/graphql/resolvers/graphql_adapter_builder.rb', line 28

def build
  scalar_type_hash
    .merge(object_type_hash)
    .merge({"resolve_type" => _ = ->(supertype, obj, ctx) { resolve_type(supertype, obj, ctx) }})
end