Method: Castkit::Contract::Validator#call

Defined in:
lib/castkit/contract/validator.rb

#call(input) ⇒ Hash{Symbol => String, Hash}

Executes validation against the input data.

Parameters:

  • input (Hash)

    the incoming data to validate

Returns:

  • (Hash{Symbol => String, Hash})

    validation errors, empty if valid



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/castkit/contract/validator.rb', line 42

def call(input)
  validate_access_config!
  errors = {}

  @attributes.each do |attribute|
    value = resolve_input_value(input, attribute)
    error = validate_attribute(attribute, value)

    errors[attribute.field] = error if error
  end

  validate_unknown_attributes!(input, errors)
  errors
end