class CurrencyCloud::ApiError
Attributes
code[R]
messages[R]
raw_response[R]
status_code[R]
Public Class Methods
new(verb, route, params, raw_response)
click to toggle source
# File lib/currency_cloud/errors/api_error.rb, line 27 def initialize(verb, route, params, raw_response) @verb = verb @route = route @params = redacted_params(params) @raw_response = raw_response @status_code = raw_response.code errors = raw_response.parsed_response @code = errors['error_code'] @messages = [] return unless errors['error_messages'] errors['error_messages'].each do |field, messages| if messages.is_a?(Array) messages.each do |message| @messages << ApiErrorMessage.new(field, message) end else @messages << ApiErrorMessage.new(field, messages) end end end
Public Instance Methods
to_s()
click to toggle source
Calls superclass method
# File lib/currency_cloud/errors/api_error.rb, line 50 def to_s class_name = super string_params = Hash[@params.map { |k, v| [k.to_s, v.to_s] }] error_details = { 'platform' => platform, 'request' => { 'parameters' => string_params, 'verb' => @verb.to_s, 'url' => @route }, 'response' => { 'status_code' => status_code, 'date' => raw_response.headers['Date'], 'request_id' => (raw_response.headers['x-request-id'] || 0).to_i }, 'errors' => messages.map(&:to_h) } "#{class_name}#{$INPUT_RECORD_SEPARATOR}#{YAML.dump(error_details)}" end