Exception: 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, InvalidNameError, Query::OperationNameMissingError, Query::VariableValidationError, Schema::TimeoutMiddleware::TimeoutError
Instance Attribute Summary collapse
-
#ast_node ⇒ GraphQL::Language::Nodes::Field
The field where the error occured.
-
#extensions ⇒ Hash
under the
extensions
key. -
#options ⇒ Hash
deprecated
Deprecated.
Use
extensions
instead ofoptions
. The GraphQL spec -
#path ⇒ String
response which corresponds to this error.
Instance Method Summary collapse
-
#initialize(message, ast_node: 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, options: nil, extensions: nil) ⇒ ExecutionError
Returns a new instance of ExecutionError
24 25 26 27 28 29 |
# File 'lib/graphql/execution_error.rb', line 24 def initialize(, ast_node: nil, options: nil, extensions: nil) @ast_node = ast_node @options = @extensions = extensions super() end |
Instance Attribute Details
#ast_node ⇒ GraphQL::Language::Nodes::Field
Returns the field where the error occured
8 9 10 |
# File 'lib/graphql/execution_error.rb', line 8 def ast_node @ast_node end |
#extensions ⇒ Hash
under the extensions
key.
22 23 24 |
# File 'lib/graphql/execution_error.rb', line 22 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.
18 19 20 |
# File 'lib/graphql/execution_error.rb', line 18 def @options end |
#path ⇒ String
response which corresponds to this error.
12 13 14 |
# File 'lib/graphql/execution_error.rb', line 12 def path @path end |
Instance Method Details
#to_h ⇒ Hash
Returns An entry for the response’s “errors” key
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/graphql/execution_error.rb', line 32 def to_h hash = { "message" => , } if ast_node hash["locations"] = [ { "line" => ast_node.line, "column" => ast_node.col, } ] end if path hash["path"] = path end if hash.merge!() end if extensions hash["extensions"] ||= {} hash["extensions"].merge!(extensions) end hash end |