Sha256: ef9bf7194fd5d0042f31decb63f3fe5cec5d56fdc832c92332ad9729588afe75

Contents?: true

Size: 1.02 KB

Versions: 14

Compression:

Stored size: 1.02 KB

Contents

module Bs2Api
  module Payment
    class Base
      attr_reader :payment

      def initialize
        raise NoMethodError, "Missing #{__method__} to #{self.class}"
      end

      def call
        response = post_request
        raise Bs2Api::Errors::BadRequest, ::Util::Response.parse_error(response) unless response.ok?

        @payment = Bs2Api::Entities::Payment.from_response(response)
        self
      end

      private
        def post_request
          HTTParty.post(url, headers: headers, body: payload.to_json)
        end

        def headers
          {
            "Content-Type": "application/json",
            "Accept": "application/json",
            "Authorization": "Bearer #{bearer_token}"
          }
        end

        def bearer_token
          Bs2Api::Request::Auth.token
        end

        def payload
          raise NoMethodError, "Missing #{__method__} to #{self.class}"
        end

        def url
          raise NoMethodError, "Missing #{__method__} to #{self.class}"
        end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
bs2_api-1.2.2 lib/bs2_api/payment/base.rb
bs2_api-1.2.1 lib/bs2_api/payment/base.rb
bs2_api-1.2.0 lib/bs2_api/payment/base.rb
bs2_api-1.1.7 lib/bs2_api/payment/base.rb
bs2_api-1.1.6 lib/bs2_api/payment/base.rb
bs2_api-1.1.5 lib/bs2_api/payment/base.rb
bs2_api-1.1.4 lib/bs2_api/payment/base.rb
bs2_api-1.1.3 lib/bs2_api/payment/base.rb
bs2_api-1.1.2 lib/bs2_api/payment/base.rb
bs2_api-1.1.1 lib/bs2_api/payment/base.rb
bs2_api-1.1.0 lib/bs2_api/payment/base.rb
bs2_api-1.0.3 lib/bs2_api/payment/base.rb
bs2_api-1.0.2 lib/bs2_api/payment/base.rb
bs2_api-1.0.1 lib/bs2_api/payment/base.rb