Sha256: 58e25ec3a4045a454346e4fb89c4393e39b92613679d57134c38c1a2cdf6f479

Contents?: true

Size: 1.35 KB

Versions: 7

Compression:

Stored size: 1.35 KB

Contents

require 'rest_client'

module Versapay
  class DebitAgreement

    def initialize(&block)
      yield self if block_given?
    end

    def create(email, reference = nil, message = nil)
      args = { "email" => email, "reference" => email, "message" => message }
      Versapay::make_request(:post, "/api/debit_agreements.json", args)
    end

    def list_sent(page = nil)
      args = page.nil? ? {} : { :page => page }
      Versapay::make_request(:get, "/api/debit_agreements/sent.json", args)
    end

    def list_received(page = nil)
      args = page.nil? ? {} : { :page => page }
      Versapay::make_request(:get, "/api/debit_agreements/received.json", args)
    end

    def view(token)
      Versapay::make_request(:get, "/api/debit_agreements/#{token}.json")
    end

    def approve(token, fund_token = nil)
      args = fund_token.nil? ? {} : { :fund_token => fund_token }
      Versapay::make_request(:post, "/api/debit_agreements/#{token}/approve.json", args)
    end

    def reject(reason)
      ags = { "rejection_reason" => reason }
      Versapay::make_request(:post, "/api/debit_agreements/#{token}/reject.json", args)
    end

    def cancel
      Versapay::make_request(:post, "/api/debit_agreements/#{token}/reject.json", {})
    end

    def revoke
      Versapay::make_request(:post, "/api/debit_agreements/#{token}/reject.json", {})
    end

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
versapay-0.1.5 lib/versapay/debit_agreement.rb
versapay-0.1.4 lib/versapay/debit_agreement.rb
versapay-0.1.3 lib/versapay/debit_agreement.rb
versapay-0.1.2 lib/versapay/debit_agreement.rb
versapay-0.1.1 lib/versapay/debit_agreement.rb
versapay-0.1.0 lib/versapay/debit_agreement.rb
versapay-0.0.1 lib/versapay/debit_agreement.rb