class GraphQL::StaticValidation::VariablesAreInputTypes
Public Instance Methods
validate(context)
click to toggle source
# File lib/graphql/static_validation/rules/variables_are_input_types.rb, line 7 def validate(context) context.visitor[GraphQL::Language::Nodes::VariableDefinition] << ->(node, parent) { validate_is_input_type(node, context) } end
Private Instance Methods
get_type_name(ast_type)
click to toggle source
# File lib/graphql/static_validation/rules/variables_are_input_types.rb, line 26 def get_type_name(ast_type) if ast_type.respond_to?(:of_type) get_type_name(ast_type.of_type) else ast_type.name end end
validate_is_input_type(node, context)
click to toggle source
# File lib/graphql/static_validation/rules/variables_are_input_types.rb, line 15 def validate_is_input_type(node, context) type_name = get_type_name(node.type) type = context.warden.get_type(type_name) if type.nil? context.errors << message("#{type_name} isn't a defined input type (on $#{node.name})", node, context: context) elsif !type.kind.input? context.errors << message("#{type.name} isn't a valid input type (on $#{node.name})", node, context: context) end end