Skip to content

Commit 903dce4

Browse files
committed
Add some fixes
1 parent d34ff72 commit 903dce4

4 files changed

Lines changed: 9 additions & 4 deletions

File tree

lib/graphql/execution/next/field_resolve_step.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,8 @@ def build_arguments
255255
arguments = coerce_arguments(@field_definition, @ast_node.arguments) # rubocop:disable Development/ContextIsPassedCop
256256
@arguments ||= arguments # may have already been set to an error
257257

258-
if @pending_steps.nil? || @pending_steps.size == 0
258+
if (@pending_steps.nil? || @pending_steps.size == 0) &&
259+
@field_results.nil? # Make sure this wasn't continue via inline dataloader execution
259260
execute_field
260261
end
261262
end

lib/graphql/execution/next/load_argument_step.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@ def value
2020

2121
def call
2222
context = @field_resolve_step.selections_step.query.context
23-
@loaded_value = @load_receiver.load_and_authorize_application_object(@argument_definition, @argument_value, context)
23+
@loaded_value = begin
24+
@load_receiver.load_and_authorize_application_object(@argument_definition, @argument_value, context)
25+
rescue GraphQL::UnauthorizedError => auth_err
26+
context.schema.unauthorized_object(auth_err)
27+
end
2428
if (runner = @field_resolve_step.runner).resolves_lazies && runner.lazy?(@loaded_value)
2529
runner.dataloader.lazy_at_depth(@field_resolve_step.path.size, self)
2630
else

lib/graphql/execution/next/prepare_object_step.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def authorize
8383
else
8484
create_result
8585
end
86-
rescue GraphQL::Error => err
86+
rescue GraphQL::RuntimeError => err
8787
@graphql_result[@key] = @field_resolve_step.add_graphql_error(err)
8888
end
8989

lib/graphql/execution_error.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module GraphQL
66
class ExecutionError < GraphQL::RuntimeError
77
# @return [GraphQL::Language::Nodes::Field] the field where the error occurred
88
def ast_node
9-
ast_nodes.first
9+
ast_nodes&.first
1010
end
1111

1212
def ast_node=(new_node)

0 commit comments

Comments
 (0)