class ClientErrorResponse

Attributes

code[R]

The structure expected in a 400 response.

content[R]
errors[R]
message[R]

Public Class Methods

from_attrs(attrs) click to toggle source
# File lib/hyperion/types/client_error_response.rb, line 34
def self.from_attrs(attrs)
  Hyperion::Util.nil_if_error do
    message = attrs['message']
    return nil if message.blank?
    content = attrs['content']
    code = code || ClientErrorCode.from(attrs['code'])
    errors = (attrs['errors'] || []).map(&ClientErrorDetail.method(:from_attrs))
    self.new(message, errors, code, content)
  end
end
new(message, errors, code=nil, content=nil) click to toggle source
# File lib/hyperion/types/client_error_response.rb, line 13
def initialize(message, errors, code=nil, content=nil)
  Hyperion::Util.guard_param(message, 'a message string', String)
  Hyperion::Util.guard_param(errors, 'an array of errors', &method(:error_array?))
  code = ClientErrorCode.from(code || errors.first.try(:code) || ClientErrorCode::UNKNOWN)
  Hyperion::Util.guard_param(code, 'a code') { ClientErrorCode.values.include?(code) }

  @message = message
  @code = code
  @errors = errors
  @content = content
end

Public Instance Methods

as_json(*_args) click to toggle source
# File lib/hyperion/types/client_error_response.rb, line 25
def as_json(*_args)
  {
      'message' => message,
      'code' => code.value,
      'errors' => errors.map(&:as_json),
      'content' => content
  }
end

Private Instance Methods

error_array?(xs) click to toggle source
# File lib/hyperion/types/client_error_response.rb, line 47
def error_array?(xs)
  xs.is_a?(Array) && xs.all?{|x| x.is_a?(ClientErrorDetail)}
end