Module: Railsmith::BaseService::Validation
- Included in:
- Railsmith::BaseService
- Defined in:
- lib/railsmith/base_service/validation.rb
Overview
Parameter validation helpers for service actions.
Instance Method Summary collapse
-
#validate(input = params, required_keys: [], contract: nil) ⇒ Object
Explicit validation helper intended to be called from action methods.
Instance Method Details
#validate(input = params, required_keys: [], contract: nil) ⇒ Object
Explicit validation helper intended to be called from action methods.
Supports either:
-
required_keys: simple presence checks on Hash-like params (DEPRECATED — use the ‘input` DSL with `required: true` instead)
-
contract: a dry-validation-like contract responding to ‘call(input)` and returning an object that responds to `success?` and `errors`
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/railsmith/base_service/validation.rb', line 14 def validate(input = params, required_keys: [], contract: nil) if required_keys.any? && self.class.input_registry.any? warn "[DEPRECATION] `required_keys:` on `validate()` is deprecated and ignored " \ "when the `input` DSL is in use. Declare required inputs with " \ "`input :#{required_keys.first}, ..., required: true` instead." elsif required_keys.any? warn "[DEPRECATION] `required_keys:` on `validate()` is deprecated. " \ "Use the `input` DSL with `required: true` instead." end return validate_with_contract(contract, input) if contract validate_required_keys(input, required_keys) end |