Sha256: 769dfec916c6ed8f65576032fdd075248062519621e352366e53568c595a917f

Contents?: true

Size: 934 Bytes

Versions: 2

Compression:

Stored size: 934 Bytes

Contents

module Spree
  class Gateway
    class BraintreeVzeroBase
      class Transaction
        attr_reader :transaction_id, :request

        def initialize(provider, transaction_id = nil)
          @transaction_id = transaction_id
          @request = provider::Transaction
        end

        def submit_for_settlement(amount)
          @request.submit_for_settlement(transaction_id, amount)
        end

        def clone
          t = @request.find(transaction_id)
          sale(payment_method_token: t.credit_card_details.token, amount: t.amount, options: { submit_for_settlement: true })
        end

        def sale(data)
          @request.sale(data)
        end

        def status
          @request.find(transaction_id).status
        end

        def void
          @request.void(transaction_id)
        end

        def refund(cents)
          @request.refund(transaction_id, cents)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
spree_braintree_vzero-3.6.0 app/models/spree/gateway/braintree_vzero_base/transaction.rb
spree_braintree_vzero-3.5.1 app/models/spree/gateway/braintree_vzero_base/transaction.rb