balanced 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +6 -4
- data/examples/customers.rb +115 -0
- data/lib/balanced/resources.rb +2 -0
- data/lib/balanced/resources/customer.rb +102 -0
- data/lib/balanced/resources/marketplace.rb +5 -0
- data/lib/balanced/utils.rb +4 -0
- data/lib/balanced/version.rb +1 -1
- data/spec/balanced/resources/customer_spec.rb +228 -0
- data/spec/spec_helper.rb +1 -0
- data/upload_docs.rb +2 -1
- metadata +16 -22
- data/spec/balanced/resources/transactions_spec.rb +0 -66
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e69cc58c7b89500cead1e3ed9a7e87488942aa72
|
4
|
+
data.tar.gz: 845faa189939c479db8234bbe615ad68c0fbcc59
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 00a427992fe65be31e2caeb435dc4ee25fa6e85c26559ae321fd53a3f83be55305541e4f2f16e14f4e9838d190888d4458c15aa2389d60ec612085bd77a08090
|
7
|
+
data.tar.gz: 69f1756cee7c1c263b341502299bcbe4102cdb128c982f2393354b85738e315ec70d310058c4ef17448ef6987f60e8d70409b4c2aa46fd5ec46b2b0511a87ac8
|
data/README.md
CHANGED
@@ -19,10 +19,12 @@ Or install it yourself as:
|
|
19
19
|
|
20
20
|
$ gem install balanced
|
21
21
|
|
22
|
-
## Usage
|
23
|
-
|
24
|
-
See https://www.balancedpayments.com/docs/overview?language=ruby for tutorials and documentation.
|
22
|
+
## Documentation & Usage
|
25
23
|
|
24
|
+
* [Balanced Overview](https://www.balancedpayments.com/docs/overview?language=ruby)
|
25
|
+
* [RDoc](http://rubydoc.info/gems/balanced)
|
26
|
+
* [Balanced API with Ruby examples](https://www.balancedpayments.com/docs/api?language=ruby)
|
27
|
+
* [Example scripts](https://github.com/balanced/balanced-ruby/tree/master/examples)
|
26
28
|
|
27
29
|
## Contributing
|
28
30
|
|
@@ -75,4 +77,4 @@ Documentation is built using YARD - http://rubydoc.info/docs/yard
|
|
75
77
|
#####OpenSSL
|
76
78
|
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
|
77
79
|
|
78
|
-
The machine's Ruby/OpenSSL environment can't find any root certificates to trust. Please refer [here](http://www.google.com/search?q=SSL+connect+returned=1+errno=0+state=SSLv3) to find the best solution for your environment.
|
80
|
+
The machine's Ruby/OpenSSL environment can't find any root certificates to trust. Please refer [here](http://www.google.com/search?q=SSL+connect+returned=1+errno=0+state=SSLv3) to find the best solution for your environment.
|
@@ -0,0 +1,115 @@
|
|
1
|
+
cwd = File.dirname(File.dirname(File.absolute_path(__FILE__)))
|
2
|
+
$:.unshift(cwd + "/lib")
|
3
|
+
require 'balanced'
|
4
|
+
require 'ruby-debug'
|
5
|
+
|
6
|
+
|
7
|
+
begin
|
8
|
+
Balanced::Card
|
9
|
+
rescue NameError
|
10
|
+
raise "wtf"
|
11
|
+
end
|
12
|
+
|
13
|
+
host = ENV.fetch('BALANCED_HOST') { nil }
|
14
|
+
options = {}
|
15
|
+
if host
|
16
|
+
options[:scheme] = 'http'
|
17
|
+
options[:host] = host
|
18
|
+
options[:port] = 5000
|
19
|
+
end
|
20
|
+
|
21
|
+
Balanced.configure(nil, options)
|
22
|
+
|
23
|
+
puts "create our new api key"
|
24
|
+
api_key = Balanced::ApiKey.new.save
|
25
|
+
puts "Our secret is: ", api_key.secret
|
26
|
+
secret = api_key.secret
|
27
|
+
|
28
|
+
puts "configure with our secret #{secret}"
|
29
|
+
Balanced.configure(secret)
|
30
|
+
|
31
|
+
puts "create our marketplace"
|
32
|
+
begin
|
33
|
+
marketplace = Balanced::Marketplace.new.save
|
34
|
+
rescue Balanced::Conflict => ex
|
35
|
+
marketplace = Balanced::Marketplace.mine
|
36
|
+
end
|
37
|
+
|
38
|
+
puts "create a customer"
|
39
|
+
#
|
40
|
+
customer = marketplace.create_customer(
|
41
|
+
:name => "Bill",
|
42
|
+
:email => "bill@bill.com",
|
43
|
+
:business_name => "Bill Inc.",
|
44
|
+
:ssn_last4 => "1234",
|
45
|
+
:address => {
|
46
|
+
:line1 => "1234 1st Street",
|
47
|
+
:city => "San Francisco",
|
48
|
+
:state => "CA"
|
49
|
+
}
|
50
|
+
).save
|
51
|
+
|
52
|
+
puts "our customer uri is #{customer.uri}"
|
53
|
+
|
54
|
+
puts "create a card and a bank account for our customer"
|
55
|
+
|
56
|
+
bank_account = marketplace.create_bank_account(
|
57
|
+
:account_number => "1234567980",
|
58
|
+
:bank_code => "321174811",
|
59
|
+
:name => "Jack Q Merchant"
|
60
|
+
)
|
61
|
+
|
62
|
+
card = marketplace.create_card(
|
63
|
+
:card_number => "4111111111111111",
|
64
|
+
:expiration_month => "12",
|
65
|
+
:expiration_year => "2015",
|
66
|
+
).save
|
67
|
+
|
68
|
+
puts "our bank account uri is #{bank_account.uri}"
|
69
|
+
puts "our card uri is #{card.uri}"
|
70
|
+
|
71
|
+
puts "associate the newly created bank account and card to our customer"
|
72
|
+
debugger
|
73
|
+
customer.add_card(card)
|
74
|
+
customer.add_bank_account(bank_account)
|
75
|
+
|
76
|
+
puts "check and make sure our customer now has a card and bank account listed"
|
77
|
+
|
78
|
+
raise "customer's cards should not be empty" unless customer.cards.any?
|
79
|
+
raise "customer's bank accounts should not be empty" unless customer.bank_accounts.any?
|
80
|
+
|
81
|
+
puts "create a debit on our customer"
|
82
|
+
|
83
|
+
customer.debit(
|
84
|
+
:amount => 5000,
|
85
|
+
:description => "new debit"
|
86
|
+
)
|
87
|
+
|
88
|
+
puts "check to make sure debit is added"
|
89
|
+
|
90
|
+
raise "customer should not have 0 debits" unless customer.debits.any?
|
91
|
+
raise "customer debit should be 5000" unless customer.debits.first.amount == 5000
|
92
|
+
|
93
|
+
puts "create a credit on our customer"
|
94
|
+
|
95
|
+
customer.credit(
|
96
|
+
:amount => 2500,
|
97
|
+
:description => "new credit"
|
98
|
+
)
|
99
|
+
|
100
|
+
puts "check to make sure credit is added"
|
101
|
+
|
102
|
+
raise "customer should not have 0 credits" unless customer.credits.any?
|
103
|
+
raise "customer should be 2500" unless customer.credits.first.amount == 2500
|
104
|
+
|
105
|
+
puts "check to see what is the active card for a customer"
|
106
|
+
|
107
|
+
raise "active card is incorrect" unless customer.active_card.id == card.id
|
108
|
+
|
109
|
+
puts "check to see what is the active bank_account for a customer"
|
110
|
+
|
111
|
+
raise "active bank account is incorrect" unless customer.active_bank_account.id == bank_account.id
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
|
data/lib/balanced/resources.rb
CHANGED
@@ -0,0 +1,102 @@
|
|
1
|
+
module Balanced
|
2
|
+
# A customer represents a business or person within your Marketplace. A
|
3
|
+
# customer can have many funding instruments such as cards and bank accounts
|
4
|
+
# associated to them.
|
5
|
+
#
|
6
|
+
class Customer
|
7
|
+
include Balanced::Resource
|
8
|
+
|
9
|
+
def self.uri
|
10
|
+
# Override the default nesting
|
11
|
+
self.collection_path
|
12
|
+
end
|
13
|
+
|
14
|
+
def initialize attributes = {}
|
15
|
+
Balanced::Utils.stringify_keys! attributes
|
16
|
+
unless attributes.has_key? 'uri'
|
17
|
+
attributes['uri'] = self.class.uri
|
18
|
+
end
|
19
|
+
super attributes
|
20
|
+
end
|
21
|
+
|
22
|
+
def debit(options = {})
|
23
|
+
amount = options[:amount]
|
24
|
+
appears_on_statement_as = options[:appears_on_statement_as]
|
25
|
+
hold_uri = options[:hold_uri]
|
26
|
+
meta = options[:meta]
|
27
|
+
description = options[:description]
|
28
|
+
source_uri = options[:source_uri]
|
29
|
+
on_behalf_of = options[:on_behalf_of] || options[:on_behalf_of_uri]
|
30
|
+
|
31
|
+
if on_behalf_of
|
32
|
+
if on_behalf_of.respond_to? :uri
|
33
|
+
on_behalf_of = on_behalf_of.uri
|
34
|
+
end
|
35
|
+
if !on_behalf_of.is_a?(String)
|
36
|
+
raise ArgumentError, 'The on_behalf_of parameter needs to be a customer URI'
|
37
|
+
end
|
38
|
+
if on_behalf_of == self.uri
|
39
|
+
raise ArgumentError, 'The on_behalf_of parameter MAY NOT be the same account as the customer you are debiting!'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
debit = Debit.new(
|
44
|
+
:uri => self.debits_uri,
|
45
|
+
:amount => amount,
|
46
|
+
:appears_on_statement_as => appears_on_statement_as,
|
47
|
+
:hold_uri => hold_uri,
|
48
|
+
:meta => meta,
|
49
|
+
:description => description,
|
50
|
+
:source_uri => source_uri,
|
51
|
+
:on_behalf_of_uri => on_behalf_of,
|
52
|
+
)
|
53
|
+
debit.save
|
54
|
+
end
|
55
|
+
|
56
|
+
def credit(options = {})
|
57
|
+
options.merge!(:uri => self.credits_uri)
|
58
|
+
Credit.new(options).save
|
59
|
+
end
|
60
|
+
|
61
|
+
# Associates the Card represented by 'card' with this Customer.
|
62
|
+
#
|
63
|
+
# @return [Card]
|
64
|
+
|
65
|
+
def add_card(card)
|
66
|
+
card.save if card.kind_of?(Balanced::Card) && card.hash.nil?
|
67
|
+
self.card_uri = Balanced::Utils.extract_uri_from_object(card)
|
68
|
+
save
|
69
|
+
end
|
70
|
+
|
71
|
+
# Associates the BankAccount represented by bank_account with this
|
72
|
+
# Customer.
|
73
|
+
#
|
74
|
+
# @return [BankAccount]
|
75
|
+
def add_bank_account(bank_account)
|
76
|
+
if bank_account.kind_of?(Balanced::BankAccount) && bank_account.hash.nil?
|
77
|
+
bank_account.save
|
78
|
+
end
|
79
|
+
self.bank_account_uri = Balanced::Utils.extract_uri_from_object(bank_account)
|
80
|
+
save
|
81
|
+
end
|
82
|
+
|
83
|
+
def active_card
|
84
|
+
pager = Pager.new(
|
85
|
+
self.cards_uri,
|
86
|
+
:is_active => true,
|
87
|
+
:sort => 'created_at,desc',
|
88
|
+
:limit => 1)
|
89
|
+
pager.first
|
90
|
+
end
|
91
|
+
|
92
|
+
def active_bank_account
|
93
|
+
pager = Pager.new(
|
94
|
+
self.bank_accounts_uri,
|
95
|
+
:is_active => true,
|
96
|
+
:sort => 'created_at,desc',
|
97
|
+
:limit => 1)
|
98
|
+
pager.first
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|
102
|
+
end
|
data/lib/balanced/utils.rb
CHANGED
@@ -30,6 +30,10 @@ module Balanced
|
|
30
30
|
word
|
31
31
|
end
|
32
32
|
|
33
|
+
def extract_uri_from_object(object)
|
34
|
+
object.respond_to?(:uri) ? object.uri : object
|
35
|
+
end
|
36
|
+
|
33
37
|
def hash_with_indifferent_read_access base = {}
|
34
38
|
indifferent = Hash.new do |hash, key|
|
35
39
|
hash[key.to_s] if key.is_a? Symbol
|
data/lib/balanced/version.rb
CHANGED
@@ -0,0 +1,228 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Balanced::Customer, :vcr do
|
4
|
+
before do
|
5
|
+
api_key = Balanced::ApiKey.new.save
|
6
|
+
Balanced.configure api_key.secret
|
7
|
+
@marketplace = Balanced::Marketplace.new.save
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "Customer.uri", :vcr do
|
11
|
+
|
12
|
+
context "when Api Key is configured properly", :vcr do
|
13
|
+
before do
|
14
|
+
api_key = Balanced::ApiKey.new.save
|
15
|
+
Balanced.configure api_key.secret
|
16
|
+
Balanced::Customer.new
|
17
|
+
end
|
18
|
+
|
19
|
+
it "matches the resource's uri structure" do
|
20
|
+
uri = Balanced::Customer.uri
|
21
|
+
uri.should_not be_nil
|
22
|
+
uri.should match CUSTOMERS_URI_REGEX
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "customer", :vcr do
|
28
|
+
describe "#create", :vcr do
|
29
|
+
before do
|
30
|
+
@customer = @marketplace.create_customer(
|
31
|
+
:name => "Bill",
|
32
|
+
:email => "bill@bill.com",
|
33
|
+
:business_name => "Bill Inc.",
|
34
|
+
:ssn_last4 => "1234",
|
35
|
+
:address => {
|
36
|
+
:line1 => "1234 1st Street",
|
37
|
+
:city => "San Francisco",
|
38
|
+
:state => "CA"
|
39
|
+
}
|
40
|
+
).save
|
41
|
+
end
|
42
|
+
it "should create a new customer" do
|
43
|
+
@customer.should_not be_nil
|
44
|
+
end
|
45
|
+
it "should contain the correct attributes" do
|
46
|
+
@customer.name.should eq("Bill")
|
47
|
+
@customer.email.should eq("bill@bill.com")
|
48
|
+
@customer.business_name.should eq("Bill Inc.")
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "#add_card using untokenized object", :vcr do
|
53
|
+
before do
|
54
|
+
@customer = @marketplace.create_customer
|
55
|
+
@card = Balanced::Card.new(
|
56
|
+
:card_number => "4111111111111111",
|
57
|
+
:expiration_month => "12",
|
58
|
+
:expiration_year => "2015",
|
59
|
+
)
|
60
|
+
@customer.add_card(@card)
|
61
|
+
end
|
62
|
+
it "should add a card to a customer" do
|
63
|
+
@customer.cards.size.should eq(1)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe "#add_card using tokenized object", :vcr do
|
68
|
+
before do
|
69
|
+
@customer = @marketplace.create_customer
|
70
|
+
@card = @marketplace.create_card(
|
71
|
+
:card_number => "4111111111111111",
|
72
|
+
:expiration_month => "12",
|
73
|
+
:expiration_year => "2015",
|
74
|
+
).save
|
75
|
+
@customer.add_card(@card)
|
76
|
+
@customer_card_id = @customer.cards.first.id
|
77
|
+
@card_id = @card.id
|
78
|
+
end
|
79
|
+
it "should add a card to a customer" do
|
80
|
+
@customer.cards.size.should eq(1)
|
81
|
+
end
|
82
|
+
it "card added should be the same card" do
|
83
|
+
@customer_card_id.should eq(@card_id)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "#add_card using uri", :vcr do
|
88
|
+
before do
|
89
|
+
@customer = @marketplace.create_customer
|
90
|
+
@card = @marketplace.create_card(
|
91
|
+
:card_number => "4111111111111111",
|
92
|
+
:expiration_month => "12",
|
93
|
+
:expiration_year => "2015",
|
94
|
+
).save
|
95
|
+
@customer.add_card(@card.uri)
|
96
|
+
@customer_card_id = @customer.cards.first.id
|
97
|
+
@card_id = @card.id
|
98
|
+
end
|
99
|
+
it "should add a card to a customer" do
|
100
|
+
@customer.cards.size.should eq(1)
|
101
|
+
end
|
102
|
+
it "card added should be the same card" do
|
103
|
+
@customer_card_id.should eq(@card_id)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
describe "#add_bank_account using tokenized object", :vcr do
|
108
|
+
before do
|
109
|
+
@customer = @marketplace.create_customer
|
110
|
+
@bank_account = @marketplace.create_bank_account(
|
111
|
+
:account_number => "1234567980",
|
112
|
+
:bank_code => "321174811",
|
113
|
+
:name => "Jack Q Merchant"
|
114
|
+
)
|
115
|
+
@customer.add_bank_account(@bank_account)
|
116
|
+
@customer_bank_account_id = @customer.bank_accounts.first.id
|
117
|
+
@bank_account_id = @bank_account.id
|
118
|
+
end
|
119
|
+
it "should add a bank account to a customer" do
|
120
|
+
@customer.bank_accounts.size.should eq(1)
|
121
|
+
end
|
122
|
+
it "bank account added should be the same bank account" do
|
123
|
+
@customer_bank_account_id = @bank_account_id
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
describe "#add_bank_account using uri", :vcr do
|
128
|
+
before do
|
129
|
+
@customer = @marketplace.create_customer
|
130
|
+
@bank_account = @marketplace.create_bank_account(
|
131
|
+
:account_number => "1234567980",
|
132
|
+
:bank_code => "321174811",
|
133
|
+
:name => "Jack Q Merchant"
|
134
|
+
)
|
135
|
+
@customer.add_bank_account(@bank_account.uri)
|
136
|
+
@customer_bank_account_id = @customer.bank_accounts.first.id
|
137
|
+
@bank_account_id = @bank_account.id
|
138
|
+
end
|
139
|
+
it "should add a bank account to a customer" do
|
140
|
+
@customer.bank_accounts.size.should eq(1)
|
141
|
+
end
|
142
|
+
it "bank account added should be the same bank account" do
|
143
|
+
@customer_bank_account_id = @bank_account_id
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
describe "#debit" do
|
148
|
+
before do
|
149
|
+
@customer = @marketplace.create_customer
|
150
|
+
@card = @marketplace.create_card(
|
151
|
+
:card_number => "4111111111111111",
|
152
|
+
:expiration_month => "12",
|
153
|
+
:expiration_year => "2015",
|
154
|
+
).save
|
155
|
+
@customer.add_card(@card)
|
156
|
+
@customer.debit :amount => 1000
|
157
|
+
end
|
158
|
+
context "customer debit should be added" do
|
159
|
+
subject {@customer.debits.first}
|
160
|
+
its(:amount) { should eq 1000}
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
describe "compound credit and debit", :vcr do
|
165
|
+
before do
|
166
|
+
@customer = @marketplace.create_customer
|
167
|
+
@bank_account = @marketplace.create_bank_account(
|
168
|
+
:account_number => "1234567980",
|
169
|
+
:bank_code => "321174811",
|
170
|
+
:name => "Jack Q Merchant"
|
171
|
+
)
|
172
|
+
@card = Balanced::Card.new(
|
173
|
+
:card_number => "4111111111111111",
|
174
|
+
:expiration_month => "12",
|
175
|
+
:expiration_year => "2015",
|
176
|
+
).save
|
177
|
+
@customer.add_card(@card)
|
178
|
+
@customer.add_bank_account(@bank_account)
|
179
|
+
@customer.debit :amount => 1250
|
180
|
+
end
|
181
|
+
|
182
|
+
context "args passed by name via options hash" do
|
183
|
+
subject {
|
184
|
+
@customer.credit(
|
185
|
+
amount: 1250,
|
186
|
+
description: "description",
|
187
|
+
meta: {}
|
188
|
+
)
|
189
|
+
}
|
190
|
+
|
191
|
+
its(:amount) { should == 1250 }
|
192
|
+
its(:meta) { should == {} }
|
193
|
+
its(:description) { should == "description" }
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
describe "#active_card", :vcr do
|
198
|
+
before do
|
199
|
+
@customer = @marketplace.create_customer
|
200
|
+
@card = @marketplace.create_card(
|
201
|
+
:card_number => "4111111111111111",
|
202
|
+
:expiration_month => "12",
|
203
|
+
:expiration_year => "2015",
|
204
|
+
).save
|
205
|
+
@customer.add_card(@card)
|
206
|
+
end
|
207
|
+
it "should display the most recently added valid card" do
|
208
|
+
@customer.active_card.should_not be_nil
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
describe "#active_bank_account", :vcr do
|
213
|
+
before do
|
214
|
+
@customer = @marketplace.create_customer
|
215
|
+
@bank_account = @marketplace.create_bank_account(
|
216
|
+
:account_number => "1234567980",
|
217
|
+
:bank_code => "321174811",
|
218
|
+
:name => "Jack Q Merchant"
|
219
|
+
)
|
220
|
+
@customer.add_bank_account(@bank_account)
|
221
|
+
end
|
222
|
+
it "should display the most recently added valid card" do
|
223
|
+
@customer.active_bank_account.should_not be_nil
|
224
|
+
end
|
225
|
+
end
|
226
|
+
end
|
227
|
+
|
228
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -48,3 +48,4 @@ DEBITS_URI_REGEX = /\/v1\/marketplaces\/TEST-\w*\/accounts\/\w*\/debits/
|
|
48
48
|
TRANSACTIONS_URI_REGEX = /\/v1\/marketplaces\/TEST-\w*\/accounts\/\w*\/transactions/
|
49
49
|
CREDITS_URI_REGEX = /\/v1\/marketplaces\/TEST-\w*\/accounts\/\w*\/credits/
|
50
50
|
CARDS_URI_REGEX = /\/v1\/marketplaces\/TEST-\w*\/accounts\/\w*\/cards/
|
51
|
+
CUSTOMERS_URI_REGEX = /\/v1\/customers/
|
data/upload_docs.rb
CHANGED
@@ -22,7 +22,8 @@ args = [
|
|
22
22
|
'lib/balanced/resources/hold.rb',
|
23
23
|
'lib/balanced/resources/marketplace.rb',
|
24
24
|
'lib/balanced/resources/merchant.rb',
|
25
|
-
'lib/balanced/resources/transaction.rb'
|
25
|
+
'lib/balanced/resources/transaction.rb',
|
26
|
+
'lib/balanced/resources/customer.rb'
|
26
27
|
]
|
27
28
|
|
28
29
|
YARD::CLI::CommandParser.run(*args)
|
metadata
CHANGED
@@ -1,36 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: balanced
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
5
|
-
prerelease:
|
4
|
+
version: 0.7.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mahmoud Abdelkader
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-05-15 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: faraday
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 0.8.6
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 0.8.6
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: faraday_middleware
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,17 +34,15 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: 0.9.0
|
46
|
-
description:
|
47
|
-
|
41
|
+
description: "Balanced is the payments platform for marketplaces.\n Integrate a
|
42
|
+
payments experience just like Amazon for your marketplace.\n Forget about dealing
|
48
43
|
with banking systems, compliance, fraud, and security.\n "
|
49
44
|
email:
|
50
|
-
-
|
51
|
-
bWFobW91ZEBwb3VuZHBheS5jb20=
|
45
|
+
- mahmoud@poundpay.com
|
52
46
|
executables: []
|
53
47
|
extensions: []
|
54
48
|
extra_rdoc_files: []
|
@@ -75,6 +69,7 @@ files:
|
|
75
69
|
- doc/balanced_templates/default/onefile/html/setup.rb
|
76
70
|
- doc/balanced_templates/default/tags/html/index.erb
|
77
71
|
- examples/bank_account_debits.rb
|
72
|
+
- examples/customers.rb
|
78
73
|
- examples/events_and_callbacks.rb
|
79
74
|
- examples/examples.rb
|
80
75
|
- lib/balanced.rb
|
@@ -88,6 +83,7 @@ files:
|
|
88
83
|
- lib/balanced/resources/callback.rb
|
89
84
|
- lib/balanced/resources/card.rb
|
90
85
|
- lib/balanced/resources/credit.rb
|
86
|
+
- lib/balanced/resources/customer.rb
|
91
87
|
- lib/balanced/resources/debit.rb
|
92
88
|
- lib/balanced/resources/event.rb
|
93
89
|
- lib/balanced/resources/hold.rb
|
@@ -106,11 +102,11 @@ files:
|
|
106
102
|
- spec/balanced/resources/bank_account_spec.rb
|
107
103
|
- spec/balanced/resources/callback_spec.rb
|
108
104
|
- spec/balanced/resources/credit_spec.rb
|
105
|
+
- spec/balanced/resources/customer_spec.rb
|
109
106
|
- spec/balanced/resources/hold_spec.rb
|
110
107
|
- spec/balanced/resources/marketplace_spec.rb
|
111
108
|
- spec/balanced/resources/merchant_spec.rb
|
112
109
|
- spec/balanced/resources/resource_spec.rb
|
113
|
-
- spec/balanced/resources/transactions_spec.rb
|
114
110
|
- spec/balanced/response/balanced_exception_middleware_spec.rb
|
115
111
|
- spec/balanced_spec.rb
|
116
112
|
- spec/client_spec.rb
|
@@ -119,27 +115,26 @@ files:
|
|
119
115
|
- upload_docs.rb
|
120
116
|
homepage: https://balancedpayments.com
|
121
117
|
licenses: []
|
118
|
+
metadata: {}
|
122
119
|
post_install_message:
|
123
120
|
rdoc_options: []
|
124
121
|
require_paths:
|
125
122
|
- lib
|
126
123
|
required_ruby_version: !ruby/object:Gem::Requirement
|
127
|
-
none: false
|
128
124
|
requirements:
|
129
|
-
- -
|
125
|
+
- - '>='
|
130
126
|
- !ruby/object:Gem::Version
|
131
127
|
version: '0'
|
132
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
-
none: false
|
134
129
|
requirements:
|
135
|
-
- -
|
130
|
+
- - '>='
|
136
131
|
- !ruby/object:Gem::Version
|
137
132
|
version: '0'
|
138
133
|
requirements: []
|
139
134
|
rubyforge_project:
|
140
|
-
rubygems_version:
|
135
|
+
rubygems_version: 2.0.3
|
141
136
|
signing_key:
|
142
|
-
specification_version:
|
137
|
+
specification_version: 4
|
143
138
|
summary: Sign up on https://balancedpayments.com/
|
144
139
|
test_files:
|
145
140
|
- spec/balanced/error_spec.rb
|
@@ -149,14 +144,13 @@ test_files:
|
|
149
144
|
- spec/balanced/resources/bank_account_spec.rb
|
150
145
|
- spec/balanced/resources/callback_spec.rb
|
151
146
|
- spec/balanced/resources/credit_spec.rb
|
147
|
+
- spec/balanced/resources/customer_spec.rb
|
152
148
|
- spec/balanced/resources/hold_spec.rb
|
153
149
|
- spec/balanced/resources/marketplace_spec.rb
|
154
150
|
- spec/balanced/resources/merchant_spec.rb
|
155
151
|
- spec/balanced/resources/resource_spec.rb
|
156
|
-
- spec/balanced/resources/transactions_spec.rb
|
157
152
|
- spec/balanced/response/balanced_exception_middleware_spec.rb
|
158
153
|
- spec/balanced_spec.rb
|
159
154
|
- spec/client_spec.rb
|
160
155
|
- spec/spec_helper.rb
|
161
156
|
- spec/utils_spec.rb
|
162
|
-
has_rdoc:
|
@@ -1,66 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe Balanced::Transaction, :vcr do
|
4
|
-
before do
|
5
|
-
api_key = Balanced::ApiKey.new.save
|
6
|
-
Balanced.configure api_key.secret
|
7
|
-
@marketplace = Balanced::Marketplace.new.save
|
8
|
-
|
9
|
-
@merchant_attributes = {
|
10
|
-
:type => "person",
|
11
|
-
:name => "Billy Jones",
|
12
|
-
:street_address => "801 High St.",
|
13
|
-
:postal_code => "94301",
|
14
|
-
:country => "USA",
|
15
|
-
:dob => "1842-01",
|
16
|
-
:phone_number => "+16505551234",
|
17
|
-
}
|
18
|
-
bank_account = @marketplace.create_bank_account(
|
19
|
-
:account_number => "1234567890",
|
20
|
-
:bank_code => "321174851",
|
21
|
-
:name => "Jack Q Merchant"
|
22
|
-
)
|
23
|
-
card = Balanced::Card.new(
|
24
|
-
:card_number => "4111111111111111",
|
25
|
-
:expiration_month => "1",
|
26
|
-
:expiration_year => "2015",
|
27
|
-
).save
|
28
|
-
@merchant = @marketplace.create_merchant(
|
29
|
-
:email_address => "merchant@example.org",
|
30
|
-
:merchant => @merchant_attributes,
|
31
|
-
:bank_account_uri => bank_account.uri,
|
32
|
-
:name => "Jack Q Merchant"
|
33
|
-
)
|
34
|
-
@buyer = @marketplace.create_buyer(
|
35
|
-
:email_address => "buyer+transactions@example.org",
|
36
|
-
:card_uri => card.uri,
|
37
|
-
:name => "Jack Q Buyer"
|
38
|
-
).save
|
39
|
-
|
40
|
-
1.upto 5 do |n|
|
41
|
-
@buyer.debit(:amount => 1000, :description => "Transaction ##{n}")
|
42
|
-
@merchant.credit(:amount => 500, :description => "Credit from Debit ##{n}")
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
|
47
|
-
describe "Transaction", :vcr do
|
48
|
-
it "#all" do
|
49
|
-
Balanced::Transaction.all.length.should eql(15)
|
50
|
-
end
|
51
|
-
|
52
|
-
describe "#paginate", :vcr do
|
53
|
-
it "#total" do
|
54
|
-
Balanced::Transaction.paginate.total.should eql(15)
|
55
|
-
end
|
56
|
-
|
57
|
-
it "#each" do
|
58
|
-
counter = 0
|
59
|
-
Balanced::Transaction.paginate.each do |transaction|
|
60
|
-
counter += 1
|
61
|
-
end
|
62
|
-
counter.should eql(15)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|