Class: Treaty::Action::Request::Validator

Inherits:
Object
  • Object
show all
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

  1. Convert ActionController::Parameters to hash if needed
  2. Check if request schema is defined
  3. Create dynamic Orchestrator with version's attributes
  4. Run validation pipeline (validate + transform)
  5. 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

Instance Method Summary collapse

Constructor Details

#initialize(params:, version_factory:) ⇒ Validator

Creates new validator instance

Parameters:



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

Parameters:

Returns:

  • (Hash)

    Validated and transformed parameters

Raises:



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

Returns:

  • (Hash)

    Validated and transformed parameters

Raises:



67
68
69
# File 'lib/treaty/action/request/validator.rb', line 67

def validate!
  validate_request_attributes!
end