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