Sha256: 236f2c9b1690ede1e92d518e523ba95eee34633638cf6c1c2e71603a9bd36597

Contents?: true

Size: 966 Bytes

Versions: 7

Compression:

Stored size: 966 Bytes

Contents

module Adyen
  module REST

    # The main exception class for error reporting when using the REST API Client.
    class Error < Adyen::Error
    end

    # Exception class for errors on requests
    class RequestValidationFailed < Adyen::REST::Error
    end

    # Exception class for error responses from the Adyen API.
    #
    # @!attribute category
    #    @return [String, nil]
    # @!attribute code
    #    @return [Integer, nil]
    # @!attribute description
    #    @return [String, nil]
    class ResponseError < Adyen::REST::Error
      attr_accessor :category, :code, :description

      def initialize(response_body)
        if match = /\A(\w+)\s(\d+)\s(.*)\z/.match(response_body)
          @category, @code, @description = match[1], match[2].to_i, match[3]
          super("API request error: #{description} (code: #{code}/#{category})")
        else
          super("API request error: #{response_body}")
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
adyen-2.4.0 lib/adyen/rest/errors.rb
adyen-2.3.0 lib/adyen/rest/errors.rb
adyen_jpiqueras-2.3.0 lib/adyen/rest/errors.rb
adyen-2.2.0 lib/adyen/rest/errors.rb
adyen-2.1.0 lib/adyen/rest/errors.rb
adyen-2.0.0 lib/adyen/rest/errors.rb
adyen-2.0.0.pre2 lib/adyen/rest/errors.rb