Sha256: 913f5e18b277bc3e5935e3768e1355f4917d34223eb0f69ea80a77c7debcd220

Contents?: true

Size: 1.76 KB

Versions: 2

Compression:

Stored size: 1.76 KB

Contents

class OpenpayExceptionFactory



  def   OpenpayExceptionFactory::create(exception)

    LOG.warn("An exception has been raised (original exception class: #{exception.class})")

    case exception

      #resource not found
      #malformed jason, invalid data, invalid request
      when   RestClient::BadRequest , RestClient::ResourceNotFound ,
                   RestClient::Conflict , RestClient::PaymentRequired ,
                   RestClient::UnprocessableEntity

            oe=OpenpayTransactionException.new exception.http_body
            LOG.warn "-OpenpayTransactionException: #{exception.http_body}"
            @errors=true
            raise  oe



      #connection, timeouts, network related errors
      when Errno::EADDRINUSE , Errno::ETIMEDOUT ,OpenSSL::SSL::SSLError
        #since this execeptions are not based on the rest api exeptions
        #we do not have the json message so we just build the exception
        #with the original exception message set in e.description and e.message
        oe=OpenpayConnectionException.new(exception.message,false)
        LOG.warn exception.message
        @errors=true
        raise  oe
      #badgateway-connection error, invalid credentials
      when  RestClient::BadGateway, RestClient::Unauthorized
            oe=OpenpayConnectionException.new exception.http_body
            LOG.warn exception.http_body
            @errors=true
            raise  oe

      when  RestClient::Exception , RestClient::InternalServerError
            oe=OpenpayException.new exception.http_body
            LOG.warn exception.http_body
            @errors=true
             raise  oe
      else
        #We won't hide unknown exceptions , those should be raised
        LOG.warn exception.message
        raise exception
    end
  end







end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
openpay-1.0.1 lib/OpenPay/errors/openpay_exception_factory.rb
openpay-0.9.8 lib/OpenPay/errors/open_pay_exception_factory.rb