Class: ActionParamsContract::ParamsValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/action_params_contract/params_validator.rb

Constant Summary collapse

ERRORS_IVAR =
:@__dry_params_validatable_errors

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(controller, schema_name, raise_on_failure:) ⇒ ParamsValidator

Returns a new instance of ParamsValidator.



15
16
17
18
19
# File 'lib/action_params_contract/params_validator.rb', line 15

def initialize(controller, schema_name, raise_on_failure:)
  @controller       = controller
  @schema_name      = schema_name
  @raise_on_failure = raise_on_failure
end

Class Method Details

.callObject



11
12
13
# File 'lib/action_params_contract/params_validator.rb', line 11

def self.call(...)
  new(...).call
end

Instance Method Details

#callObject



21
22
23
24
25
26
27
28
29
30
# File 'lib/action_params_contract/params_validator.rb', line 21

def call
  errors = validation_errors
  @controller.instance_variable_set(ERRORS_IVAR, errors)

  if errors.blank?
    @controller.params = typed_params
  elsif @raise_on_failure
    raise InvalidParamsError, errors
  end
end