Exception: GraphQL::ExecutionError
- Inherits:
-
RuntimeError
- Object
- StandardError
- Error
- RuntimeError
- GraphQL::ExecutionError
- Defined in:
- lib/graphql/execution_error.rb
Overview
If a field’s resolve function returns a ExecutionError,
the error will be inserted into the response’s "errors" key
and the field will resolve to nil.
Direct Known Subclasses
AnalysisError, CoercionError, LoadApplicationObjectFailedError, Query::OperationNameMissingError, Query::VariableValidationError, Schema::Timeout::TimeoutError, Schema::Validator::ValidationFailedError
Instance Attribute Summary collapse
-
#ast_nodes ⇒ Object
Returns the value of attribute ast_nodes.
-
#extensions ⇒ Hash
under the
extensionskey. -
#options ⇒ Hash
deprecated
Deprecated.
Use
extensionsinstead ofoptions. The GraphQL spec -
#path ⇒ String
response which corresponds to this error.
Instance Method Summary collapse
-
#ast_node ⇒ GraphQL::Language::Nodes::Field
The field where the error occurred.
-
#ast_node=(new_node) ⇒ Object
-
#initialize(message, ast_node: nil, ast_nodes: nil, options: nil, extensions: nil) ⇒ ExecutionError
constructor
A new instance of ExecutionError.
-
#to_h ⇒ Hash
An entry for the response’s “errors” key.
Constructor Details
#initialize(message, ast_node: nil, ast_nodes: nil, options: nil, extensions: nil) ⇒ ExecutionError
Returns a new instance of ExecutionError.
32 33 34 35 36 37 |
# File 'lib/graphql/execution_error.rb', line 32 def initialize(, ast_node: nil, ast_nodes: nil, options: nil, extensions: nil) @ast_nodes = ast_nodes || [ast_node] @options = @extensions = extensions super() end |
Instance Attribute Details
#ast_nodes ⇒ Object
Returns the value of attribute ast_nodes.
16 17 18 |
# File 'lib/graphql/execution_error.rb', line 16 def ast_nodes @ast_nodes end |
#extensions ⇒ Hash
under the extensions key.
30 31 32 |
# File 'lib/graphql/execution_error.rb', line 30 def extensions @extensions end |
#options ⇒ Hash
Use extensions instead of options. The GraphQL spec
recommends that any custom entries in an error be under the
extensions key.
26 27 28 |
# File 'lib/graphql/execution_error.rb', line 26 def @options end |
#path ⇒ String
response which corresponds to this error.
20 21 22 |
# File 'lib/graphql/execution_error.rb', line 20 def path @path end |
Instance Method Details
#ast_node ⇒ GraphQL::Language::Nodes::Field
Returns the field where the error occurred.
8 9 10 |
# File 'lib/graphql/execution_error.rb', line 8 def ast_node ast_nodes.first end |
#ast_node=(new_node) ⇒ Object
12 13 14 |
# File 'lib/graphql/execution_error.rb', line 12 def ast_node=(new_node) @ast_nodes = [new_node] end |
#to_h ⇒ Hash
Returns An entry for the response’s “errors” key.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/graphql/execution_error.rb', line 40 def to_h hash = { "message" => , } if ast_node hash["locations"] = @ast_nodes.map { |a| { "line" => a.line, "column" => a.col } } end if path hash["path"] = path end if hash.merge!() end if extensions hash["extensions"] = extensions.each_with_object({}) { |(key, value), ext| ext[key.to_s] = value } end hash end |