Method: GraphQL::Schema::Validator::RequiredValidator#initialize

Defined in:
lib/graphql/schema/validator/required_validator.rb

#initialize(one_of: nil, argument: nil, allow_all_hidden: nil, message: nil, **default_options) ⇒ RequiredValidator

Returns a new instance of RequiredValidator.

Parameters:

  • one_of (Array<Symbol>) (defaults to: nil)

    A list of arguments, exactly one of which is required for this field

  • argument (Symbol) (defaults to: nil)

    An argument that is required for this field

  • allow_all_hidden (Boolean) (defaults to: nil)

    If true, then this validator won't run if all the one_of: ... arguments have been hidden

  • message (String) (defaults to: nil)


49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/graphql/schema/validator/required_validator.rb', line 49

def initialize(one_of: nil, argument: nil, allow_all_hidden: nil, message: nil, **default_options)
  @one_of = if one_of
    one_of
  elsif argument
    [ argument ]
  else
    raise ArgumentError, "`one_of:` or `argument:` must be given in `validates required: {...}`"
  end
  @allow_all_hidden = allow_all_hidden.nil? ? !!argument : allow_all_hidden
  @message = message
  super(**default_options)
end