Class: OpenapiFirst::Validators::RequestBody

Inherits:
Object
  • Object
show all
Defined in:
lib/openapi_first/validators/request_body.rb

Instance Method Summary collapse

Constructor Details

#initialize(content_schema:, required_request_body:) ⇒ RequestBody

Returns a new instance of RequestBody.



6
7
8
9
# File 'lib/openapi_first/validators/request_body.rb', line 6

def initialize(content_schema:, required_request_body:)
  @schema = content_schema
  @required = required_request_body
end

Instance Method Details

#call(parsed_request) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/openapi_first/validators/request_body.rb', line 11

def call(parsed_request)
  body = parsed_request.body
  if body.nil?
    Failure.fail!(:invalid_body, message: 'Request body must not be empty') if @required
    return
  end

  validation = Schema::ValidationResult.new(
    @schema.validate(body, access_mode: 'write')
  )
  Failure.fail!(:invalid_body, errors: validation.errors) if validation.error?
end