Class: GraphQL::Execution::ResolveTypeStep
- Inherits:
-
Object
- Object
- GraphQL::Execution::ResolveTypeStep
- Defined in:
- lib/graphql/execution/resolve_type_step.rb
Class Method Summary collapse
- .assert_valid_resolved_type(abstract_type, resolved_type, object, field_resolution_step, query: field_resolution_step.selections_step.query) ⇒ Object
- .resolve_type(type, object, query) ⇒ Object
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 |