class GraphQL::StaticValidation::ArgumentsValidator

Implement validate_node

Public Instance Methods

validate(context) click to toggle source
# File lib/graphql/static_validation/arguments_validator.rb, line 27
def validate(context)
  visitor = context.visitor
  visitor[GraphQL::Language::Nodes::Argument] << ->(node, parent) {
    case parent
    when GraphQL::Language::Nodes::InputObject
      arg_defn = context.argument_definition
      if arg_defn.nil?
        return
      else
        parent_defn = arg_defn.type.unwrap
        if !parent_defn.is_a?(GraphQL::InputObjectType)
          return
        end
      end
    when GraphQL::Language::Nodes::Directive
      parent_defn = context.schema.directives[parent.name]
    when GraphQL::Language::Nodes::Field
      parent_defn = context.field_definition
    else
      raise "Unexpected argument parent: #{parent.class} (##{parent})"
    end
    validate_node(parent, node, parent_defn, context)
  }
end