class Slimpay::Error

To display Slimpay error messages with the HTTP code.

Possible HAPI errors

Attributes

message[R]

Public Class Methods

empty() click to toggle source

If the HTTP response is nil or empty returns an actual message.

# File lib/slimpay/error.rb, line 14
def self.empty
  { code: 418, message: 'The answer was empty.' }
end
new(http_response) click to toggle source

Returns either formated error with its HTTP code or the raw HTTP response.

Arguments:
http_response: (HTTParty::Response)
# File lib/slimpay/error.rb, line 21
def initialize(http_response)
  if defined?(http_response.code)
    display_http_error(http_response)
  else
    @message = JSON.parse(http_response)
  end
  fail self, @message
end

Public Instance Methods

to_s() click to toggle source
# File lib/slimpay/error.rb, line 30
def to_s
  @message
end

Private Instance Methods

bad_request(http_message) click to toggle source
# File lib/slimpay/error.rb, line 53
def bad_request(http_message)
  { code: 400, message: "HTTP Bad Request. #{slimpay_error(http_message)}" }
end
display_http_error(http_response) click to toggle source
# File lib/slimpay/error.rb, line 36
def display_http_error(http_response)
  @message = case http_response.code
             when 400
               bad_request(http_response)
             when 401
               unauthorized(http_response)
             when 403
               forbidden(http_response)
             when 404
               not_found
             when 406
               not_acceptable(http_response)
             else
               http_response
             end
end
forbidden(http_message) click to toggle source
# File lib/slimpay/error.rb, line 61
def forbidden(http_message)
  { code: 403, message: "HTTP Forbidden. #{slimpay_error(http_message)}" }
end
not_acceptable(http_message) click to toggle source
# File lib/slimpay/error.rb, line 69
def not_acceptable(http_message)
  { code: 406, message: "HTTP Not Acceptable. #{slimpay_error(http_message)}" }
end
not_found() click to toggle source
# File lib/slimpay/error.rb, line 65
def not_found
  { code: 404, message: 'URI not found.' }
end
slimpay_error(http_message) click to toggle source
# File lib/slimpay/error.rb, line 73
def slimpay_error(http_message)
  slimpay_error = http_message.is_a?(Hash) ? http_message : JSON.parse(http_message)
  slimpay_code = slimpay_error['code']
  slimpay_message = slimpay_error['message'] || slimpay_error['error_description']
  "Slimpay #{slimpay_code} : #{slimpay_message}"
end
unauthorized(http_message) click to toggle source
# File lib/slimpay/error.rb, line 57
def unauthorized(http_message)
  { code: 401, message: "HTTP Unauthorized. #{slimpay_error(http_message)}"}
end