Module: GraphQL::Query::Context::SharedMethods

Included in:
GraphQL::Query::Context, FieldResolutionContext
Defined in:
lib/graphql/query/context.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#objectObject


11
12
13
# File 'lib/graphql/query/context.rb', line 11

def object
  @object
end

#skippedBoolean Also known as: skipped?


17
18
19
# File 'lib/graphql/query/context.rb', line 17

def skipped
  @skipped
end

#valueHash, ... (readonly)


14
15
16
# File 'lib/graphql/query/context.rb', line 14

def value
  @value
end

Instance Method Details

#add_error(error) ⇒ void

This method returns an undefined value.

Add error at query-level.


58
59
60
61
62
63
64
# File 'lib/graphql/query/context.rb', line 58

def add_error(error)
  if !error.is_a?(ExecutionError)
    raise TypeError, "expected error to be a ExecutionError, but was #{error.class}"
  end
  errors << error
  nil
end

#backtraceGraphQL::Backtrace

Returns The backtrace for this point in query execution

Examples:

Print the GraphQL backtrace during field resolution

puts ctx.backtrace

70
71
72
# File 'lib/graphql/query/context.rb', line 70

def backtrace
  GraphQL::Backtrace.new(self)
end

#delete(child_ctx) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Remove this child from the result value (used for null propagation and skip)


37
38
39
# File 'lib/graphql/query/context.rb', line 37

def delete(child_ctx)
  @value.delete(child_ctx.key)
end

#invalid_null?Boolean


30
31
32
# File 'lib/graphql/query/context.rb', line 30

def invalid_null?
  @invalid_null
end

#skipObject

Return this value to tell the runtime to exclude this field from the response altogether


25
26
27
# File 'lib/graphql/query/context.rb', line 25

def skip
  GraphQL::Execution::Execute::SKIP
end

#spawn_child(key:, irep_node:, object:) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Create a child context to use for key


45
46
47
48
49
50
51
52
53
# File 'lib/graphql/query/context.rb', line 45

def spawn_child(key:, irep_node:, object:)
  FieldResolutionContext.new(
    context: @context,
    parent: self,
    object: object,
    key: key,
    irep_node: irep_node,
  )
end