Class: Relay::Node::CompositeType

Inherits:
GraphQL::Configuration::Configurable
  • Object
show all
Defined in:
lib/relay/node/composite.rb

Instance Method Summary collapse

Instance Method Details

#fetch_objectObject



12
13
14
15
16
# File 'lib/relay/node/composite.rb', line 12

def fetch_object
  @fetch_object ||= lambda { |object, params, context|
    @configuration.fetch_object.call(params[:id], context)
  }
end

#fieldObject



22
23
24
25
26
27
28
29
# File 'lib/relay/node/composite.rb', line 22

def field
  @field ||= GraphQL::GraphQLField.new(type: interface, resolve: fetch_object) do
    name          'node'
    description   'An object with id.'

    arg :id, !GraphQL::GraphQLID
  end
end

#interfaceObject



31
32
33
34
35
36
37
38
# File 'lib/relay/node/composite.rb', line 31

def interface
  @interface ||= GraphQL::GraphQLInterfaceType.new(resolve_type: resolve_type) do
    name          'NodeInterface'
    description   'A node with id.'

    field :id, ! GraphQL::GraphQLID
  end
end

#resolve_typeObject



18
19
20
# File 'lib/relay/node/composite.rb', line 18

def resolve_type
  @configuration.resolve_type
end