Class: Treaty::Action::Request::Validator
- Inherits:
-
Object
- Object
- Treaty::Action::Request::Validator
- Defined in:
- lib/treaty/action/request/validator.rb
Overview
Validates incoming request parameters against schema.
Purpose
Validates incoming request params against the request schema defined in the treaty version. Runs all validators (required, type, inclusion, format) and transformations (default, cast, transform, as).
Usage
Called internally by:
- Versions::Execution::Base (before delegating to service)
Validation Flow
- Convert ActionController::Parameters to hash if needed
- Check if request schema is defined
- Create dynamic Orchestrator with version's attributes
- Run validation pipeline (validate + transform)
- Return validated/transformed params or raise error
Error Handling
Raises Treaty::Exceptions::Validation with detailed messages including attribute path and specific validation failures.
Example
# Typically called via class method:
validated = Request::Validator.validate!(
params: controller.params,
version_factory: version_factory
)
# validated contains transformed params ready for service
Class Method Summary collapse
-
.validate!(params:, version_factory:) ⇒ Hash
Validates request parameters.
Instance Method Summary collapse
-
#initialize(params:, version_factory:) ⇒ Validator
constructor
Creates new validator instance.
-
#validate! ⇒ Hash
Runs validation pipeline.
Constructor Details
#initialize(params:, version_factory:) ⇒ Validator
Creates new validator instance
58 59 60 61 |
# File 'lib/treaty/action/request/validator.rb', line 58 def initialize(params:, version_factory:) @params = params @version_factory = version_factory end |
Class Method Details
.validate!(params:, version_factory:) ⇒ Hash
Validates request parameters
49 50 51 |
# File 'lib/treaty/action/request/validator.rb', line 49 def validate!(params:, version_factory:) new(params:, version_factory:).validate! end |
Instance Method Details
#validate! ⇒ Hash
Runs validation pipeline
67 68 69 |
# File 'lib/treaty/action/request/validator.rb', line 67 def validate! validate_request_attributes! end |