class Praxis::Responses::ValidationError

Public Class Methods

new(summary:, errors: nil, exception: nil, documentation: nil, **opts) click to toggle source
Calls superclass method Praxis::Response::new
# 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

Public Instance Methods

format!() click to toggle source
# 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