Class: GraphQL::Schema::Validator::RequiredValidator
- Inherits:
 - 
      GraphQL::Schema::Validator
      
        
- Object
 - GraphQL::Schema::Validator
 - GraphQL::Schema::Validator::RequiredValidator
 
 
- Defined in:
 - lib/graphql/schema/validator/required_validator.rb
 
Overview
Use this validator to require one of the named arguments to be present. Or, use Arrays of symbols to name a valid set of arguments.
(This is for specifying mutually exclusive sets of arguments.)
Constant Summary
Constants included from FindInheritedValue::EmptyObjects
FindInheritedValue::EmptyObjects::EMPTY_ARRAY, FindInheritedValue::EmptyObjects::EMPTY_HASH
Instance Attribute Summary
Attributes inherited from GraphQL::Schema::Validator
Instance Method Summary collapse
- 
  
    
      #initialize(one_of:, message: "%{validated} has the wrong arguments", **default_options)  ⇒ RequiredValidator 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of RequiredValidator.
 - 
  
    
      #validate(_object, _context, value)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
 
Methods inherited from GraphQL::Schema::Validator
#apply, from_config, install, #partial_format, uninstall, validate!
Constructor Details
#initialize(one_of:, message: "%{validated} has the wrong arguments", **default_options) ⇒ RequiredValidator
Returns a new instance of RequiredValidator.
      34 35 36 37 38  | 
    
      # File 'lib/graphql/schema/validator/required_validator.rb', line 34 def initialize(one_of:, message: "%{validated} has the wrong arguments", **) @one_of = one_of @message = super(**) end  | 
  
Instance Method Details
#validate(_object, _context, value) ⇒ Object
      40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64  | 
    
      # File 'lib/graphql/schema/validator/required_validator.rb', line 40 def validate(_object, _context, value) matched_conditions = 0 @one_of.each do |one_of_condition| case one_of_condition when Symbol if value.key?(one_of_condition) matched_conditions += 1 end when Array if one_of_condition.all? { |k| value.key?(k) } matched_conditions += 1 break end else raise ArgumentError, "Unknown one_of condition: #{one_of_condition.inspect}" end end if matched_conditions == 1 nil # OK else @message end end  |