Sha256: b7953fad4d7821e454aae477c8a7dd5ca86bd1af23e494a319626da2699d80f8
Contents?: true
Size: 1.66 KB
Versions: 6
Compression:
Stored size: 1.66 KB
Contents
module Conekta class Error < Exception attr_reader :message attr_reader :type attr_reader :code attr_reader :param def initialize(message=nil, type=nil, code=nil, param=nil) @message = message @type = type @code = code @param = param end def class_name self.class.name.split('::')[-1] end def self.error_handler(resp, code) if resp.instance_of?(Hash) @message = resp["message"] if resp.has_key?('message') @type = resp["type"] if resp.has_key?('type') @code = resp["code"] if resp.has_key?('code') @param = resp["param"] if resp.has_key?('param') end if code == nil or code == 0 or code == nil or code == "" raise NoConnectionError.new("Could not connect to #{Conekta.api_base}", @type, @code, @param) end case code when 400 raise MalformedRequestError.new(@message, @type, @code, @params) when 401 raise AuthenticationError.new(@message, @type, @code, @params) when 402 raise ProcessingError.new(@message, @type, @code, @params) when 404 raise ResourceNotFoundError.new(@message, @type, @code, @params) when 422 raise ParameterValidationError.new(@message, @type, @code, @params) when 500 raise ApiError.new(@message, @type, @code, @params) else raise Error.new(@message, @type, @code, @params) end end end class ApiError < Error end class NoConnectionError < Error end class AuthenticationError < Error end class ParameterValidationError < Error end class ProcessingError < Error end class ResourceNotFoundError < Error end class MalformedRequestError < Error end end
Version data entries
6 entries across 6 versions & 1 rubygems