5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/graphql/static_validation/rules/argument_literals_are_compatible.rb', line 5
def validate_node(parent, node, defn, context)
return if node.value.is_a?(GraphQL::Language::Nodes::VariableIdentifier)
arg_defn = defn.arguments[node.name]
return unless arg_defn
begin
valid = context.valid_literal?(node.value, arg_defn.type)
rescue GraphQL::CoercionError => err
error_message = err.message
end
return if valid
error_message ||= begin
kind_of_node = node_type(parent)
error_arg_name = parent_name(parent, defn)
"Argument '#{node.name}' on #{kind_of_node} '#{error_arg_name}' has an invalid value. Expected type '#{arg_defn.type}'."
end
context.errors << message(error_message, parent, context: context)
end
|