Class: Praxis::Responses::ValidationError

Inherits:
BadRequest show all
Defined in:
lib/praxis/responses/validation_error.rb

Instance Attribute Summary

Attributes inherited from Praxis::Response

#body, #headers, #name, #parts, #request, #status

Instance Method Summary collapse

Methods inherited from Praxis::Response

#add_part, #content_type, #content_type=, #encode!, #finish, #handle, inherited, #response_name, #validate

Constructor Details

#initialize(summary:, errors: nil, exception: nil, documentation: nil, **opts) ⇒ ValidationError

Returns a new instance of ValidationError.



6
7
8
9
10
11
12
13
14
# File 'lib/praxis/responses/validation_error.rb', line 6

def initialize(summary:, errors: nil, exception: nil, documentation: nil, **opts)
  super(**opts)
  @headers['Content-Type'] = 'application/json' # TODO: might want an error mediatype
  @errors = errors
  @errors = [exception.message] if !@errors && exception&.message # The exception message will the the only error if no errors are passed in
  @exception = exception
  @summary = summary
  @documentation = documentation
end

Instance Method Details

#format!Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/praxis/responses/validation_error.rb', line 16

def format!
  @body = { name: 'ValidationError', summary: @summary }
  @body[:errors] = @errors if @errors

  @body[:cause] = { name: @exception.cause.class.name, message: @exception.cause.message } if @exception&.cause

  @body[:documentation] = @documentation if @documentation

  @body
end