Skip to content

Commit 2c40511

Browse files
committed
Improve handling of missing arguments
1 parent 5a76507 commit 2c40511

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

lib/graphql/execution/input_values.rb

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,16 @@ def argument_value(argument_values, argument_key, argument_definition, arg_value
140140
arg_defns.each do |inner_arg_defn|
141141
inner_arg_key = inner_arg_defn.keyword
142142
if arg_value.is_a?(Hash)
143-
inner_arg_value = arg_value[inner_arg_key]
143+
if arg_value.key?(inner_arg_key)
144+
inner_arg_value = arg_value[inner_arg_key]
145+
argument_value(new_arg_value, inner_arg_key, inner_arg_defn, inner_arg_value, nil, field_resolve_step)
146+
end
144147
else
145148
inner_arg_name = inner_arg_defn.graphql_name
146149
inner_arg_value = arg_value.arguments.find { |a| a.name == inner_arg_name } # rubocop:disable Development/ContextIsPassedCop
147-
end
148-
if !inner_arg_value.nil?
149-
argument_value(new_arg_value, inner_arg_key, inner_arg_defn, inner_arg_value, nil, field_resolve_step)
150+
if inner_arg_value
151+
argument_value(new_arg_value, inner_arg_key, inner_arg_defn, inner_arg_value, nil, field_resolve_step)
152+
end
150153
end
151154
end
152155
arg_value = new_arg_value

0 commit comments

Comments
 (0)