class Contaazul::Error

Custom error class for rescuing from all Contaazul API errors

Public Class Methods

new(response=nil) click to toggle source
Calls superclass method
# File lib/contaazul/error.rb, line 4
def initialize(response=nil)
  @response = response
  super(build_error_message)
end

Public Instance Methods

response_body() click to toggle source
# File lib/contaazul/error.rb, line 9
def response_body
  @response_body ||=
    if (body = @response[:body]) && !body.empty?
      if body.is_a?(String)
        MultiJson.load(body, :symbolize_keys => true)
      else
        body
      end
    else
      nil
    end
end

Private Instance Methods

build_error_message() click to toggle source
# File lib/contaazul/error.rb, line 24
def build_error_message
  return nil  if @response.nil?

  message = if response_body
    ": #{response_body[:error] || response_body[:message] || ''}"
  else
    ''
  end
  errors = unless message.empty?
    response_body[:errors] ?  ": #{response_body[:errors].map{|e|e[:message]}.join(', ')}" : ''
  end
  "#{@response[:method].to_s.upcase} #{@response[:url].to_s}: #{@response[:status]}#{message}#{errors}"
end