Sha256: 6db44e95b8367218380c0fb638dbfc39893c39af7be6f93640cb5c0e50043da9

Contents?: true

Size: 931 Bytes

Versions: 3

Compression:

Stored size: 931 Bytes

Contents

# frozen_string_literal: true

require 'afterpay/callable'
require 'afterpay/error_handler'
require 'afterpay/http_service'
require 'afterpay/http_service/request'
require 'afterpay/http_service/response'

module Afterpay
  module API
    class Base < Callable
      def call
        ::Afterpay::ErrorHandler.inspect(response)
      rescue ::Faraday::TimeoutError => e
        raise RequestTimeoutError.new(e.response_status), e.message
      end

      private

      def response
        @response ||= ::Afterpay::HTTPService::Response.new(
          status: raw_response.status.to_i,
          body: raw_response.body,
          headers: raw_response.headers
        )
      end

      def raw_response
        @raw_response ||= request.perform(payload)
      end

      def request
        @request ||= ::Afterpay::HTTPService::Request.new(
          ::Afterpay::HTTPService.configuration
        )
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
afterpay-0.6.0 lib/afterpay/api/base.rb
afterpay-0.5.0 lib/afterpay/api/base.rb
afterpay-0.4.0 lib/afterpay/api/base.rb