Sha256: e2aa4db5b80a9c306434f0d82030d64d5508b9c2ba583e8c9957b25cca4c6488

Contents?: true

Size: 844 Bytes

Versions: 8

Compression:

Stored size: 844 Bytes

Contents

module PensioAPI
  class Subscription
    def self.setup(options={})
      request = Request.new('/merchant/API/setupSubscription', options)
      if request.response_contains?('Transactions')
        Transaction.new(request.body['Transactions']['Transaction'])
      end
    end

    def initialize(transaction)
      @transaction = transaction
    end

    def charge(options={})
      request = Request.new('/merchant/API/chargeSubscription', options.merge(subscription_options))
      Responses::SubscriptionCharge.new(request)
    end

    def reserve_charge(options={})
      request = Request.new('/merchant/API/reserveSubscriptionCharge', options.merge(subscription_options))
      Responses::SubscriptionCharge.new(request)
    end

    private

    def subscription_options
      { transaction_id: @transaction.id }
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
pensio_api-0.3.5 lib/pensio_api/subscription.rb
pensio_api-0.3.4 lib/pensio_api/subscription.rb
pensio_api-0.3.3 lib/pensio_api/subscription.rb
pensio_api-0.3.2 lib/pensio_api/subscription.rb
pensio_api-0.3.1 lib/pensio_api/subscription.rb
pensio_api-0.3.0 lib/pensio_api/subscription.rb
pensio_api-0.2.3 lib/pensio_api/subscription.rb
pensio_api-0.2.2 lib/pensio_api/subscription.rb