Class: GraphQL::Execution::ResolveTypeStep

Inherits:
Object
  • Object
show all
Defined in:
lib/graphql/execution/resolve_type_step.rb

Class Method Summary collapse

Class Method Details

.assert_valid_resolved_type(abstract_type, resolved_type, object, field_resolution_step, query: field_resolution_step.selections_step.query) ⇒ Object



17
18
19
20
21
22
23
24
# File 'lib/graphql/execution/resolve_type_step.rb', line 17

def self.assert_valid_resolved_type(abstract_type, resolved_type, object, field_resolution_step, query: field_resolution_step.selections_step.query)
  possible_types = query.types.possible_types(abstract_type)
  if !possible_types.include?(resolved_type)
    err_class = abstract_type::UnresolvedTypeError
    type_error = err_class.new(object, field_resolution_step.field_definition, abstract_type, resolved_type, possible_types)
    query.schema.type_error(type_error, query.context)
  end
end

.resolve_type(type, object, query) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/graphql/execution/resolve_type_step.rb', line 5

def self.resolve_type(type, object, query)
  query.current_trace.begin_resolve_type(type, object, query.context)
  resolved_type_response = query.resolve_type(type, object)
  resolved_type = if resolved_type_response.is_a?(Array)
    resolved_type_response.first
  else
    resolved_type_response
  end
  query.current_trace.end_resolve_type(type, object, query.context, resolved_type)
  resolved_type_response
end