Class: Rack::Spec::RequestValidation::Validator

Inherits:
BaseRequestHandler show all
Defined in:
lib/rack/spec/request_validation.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env: nil, schema: nil) ⇒ Validator

Returns a new instance of Validator.

Parameters:

  • env (Hash) (defaults to: nil)

    Rack env

  • schema (JsonSchema::Schema) (defaults to: nil)

    Schema object



28
29
30
31
# File 'lib/rack/spec/request_validation.rb', line 28

def initialize(env: nil, schema: nil)
  @env = env
  @schema = schema
end

Class Method Details

.call(**args) ⇒ Object

Utility wrapper method



22
23
24
# File 'lib/rack/spec/request_validation.rb', line 22

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

Instance Method Details

#callObject

Raises an error if any error detected



35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/rack/spec/request_validation.rb', line 35

def call
  case
  when !has_link_for_current_action?
    raise LinkNotFound
  when has_body? && !has_valid_content_type?
    raise InvalidContentType
  when has_body? && !has_valid_json?
    raise InvalidJson
  when has_body? && has_schema? && !has_valid_parameter?
    raise InvalidParameter, "Invalid request.\n#{schema_validation_error_message}"
  end
end