openpay 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +13 -5
  2. data/.gitignore +1 -0
  3. data/.idea/.rakeTasks +2 -2
  4. data/.idea/OpenPay.iml +30 -20
  5. data/.idea/runConfigurations/Run_spec__bankaccounts_spec___OpenPay.xml +1 -0
  6. data/.idea/runConfigurations/Run_spec__cards_spec___OpenPay.xml +1 -0
  7. data/.idea/runConfigurations/Run_spec__charges_spec___OpenPay.xml +1 -0
  8. data/.idea/runConfigurations/Run_spec__customers_spec___OpenPay.xml +1 -0
  9. data/.idea/runConfigurations/Run_spec__exceptions_spec___OpenPay.xml +1 -0
  10. data/.idea/runConfigurations/Run_spec__fees_spec___OpenPay.xml +1 -0
  11. data/.idea/runConfigurations/Run_spec__payouts_spec___OpenPay.xml +1 -0
  12. data/.idea/runConfigurations/Run_spec__plans_spec___OpenPay.xml +1 -0
  13. data/.idea/runConfigurations/Run_spec__subscriptions_spec___OpenPay.xml +1 -0
  14. data/.idea/runConfigurations/Run_spec__transfers_spec___OpenPay.xml +1 -0
  15. data/.idea/runConfigurations/all_specs.xml +1 -0
  16. data/.idea/workspace.xml +484 -268
  17. data/Gemfile +0 -6
  18. data/README.md +111 -29
  19. data/lib/openpay.rb +7 -3
  20. data/lib/openpay/bankaccounts.rb +10 -11
  21. data/lib/openpay/cards.rb +12 -14
  22. data/lib/openpay/charges.rb +38 -14
  23. data/lib/openpay/customers.rb +73 -67
  24. data/lib/openpay/errors/openpay_exception_factory.rb +14 -26
  25. data/lib/openpay/fees.rb +1 -1
  26. data/lib/openpay/open_pay_resource.rb +77 -77
  27. data/lib/openpay/open_pay_resource_factory.rb +1 -1
  28. data/lib/openpay/openpay_api.rb +6 -16
  29. data/lib/openpay/payouts.rb +13 -17
  30. data/lib/openpay/plans.rb +1 -7
  31. data/lib/openpay/subscriptions.rb +21 -29
  32. data/lib/openpay/transfers.rb +14 -18
  33. data/lib/openpay/utils/search_params.rb +20 -0
  34. data/lib/version.rb +1 -2
  35. data/openpay.gemspec +0 -8
  36. data/test/Factories.rb +80 -126
  37. data/test/spec/bankaccounts_spec.rb +55 -61
  38. data/test/spec/cards_spec.rb +56 -76
  39. data/test/spec/charges_spec.rb +89 -84
  40. data/test/spec/customers_spec.rb +37 -47
  41. data/test/spec/exceptions_spec.rb +4 -21
  42. data/test/spec/fees_spec.rb +51 -7
  43. data/test/spec/payouts_spec.rb +102 -65
  44. data/test/spec/plans_spec.rb +27 -50
  45. data/test/spec/subscriptions_spec.rb +87 -24
  46. data/test/spec/transfers_spec.rb +42 -44
  47. data/test/spec/utils/search_params_spec.rb +36 -0
  48. data/test/spec_helper.rb +1 -5
  49. metadata +15 -55
  50. data/lib/OpenPay/Cards.rb +0 -75
  51. data/lib/OpenPay/Charges.rb +0 -77
  52. data/lib/OpenPay/Customers.rb +0 -194
  53. data/lib/OpenPay/Fees.rb +0 -5
  54. data/lib/OpenPay/Payouts.rb +0 -59
  55. data/lib/OpenPay/Plans.rb +0 -23
  56. data/lib/OpenPay/Subscriptions.rb +0 -58
  57. data/lib/OpenPay/Transfers.rb +0 -43
  58. data/lib/OpenPay/bankaccounts.rb +0 -59
  59. data/lib/OpenPay/errors/openpay_connection_exception.rb +0 -3
  60. data/lib/OpenPay/errors/openpay_exception.rb +0 -29
  61. data/lib/OpenPay/errors/openpay_exception_factory.rb +0 -60
  62. data/lib/OpenPay/errors/openpay_transaction_exception.rb +0 -5
  63. data/lib/OpenPay/open_pay_resource.rb +0 -242
  64. data/lib/OpenPay/open_pay_resource_factory.rb +0 -10
  65. data/lib/OpenPay/openpay_api.rb +0 -58
@@ -1,24 +1,25 @@
1
1
  require_relative '../spec_helper'
2
2
 
3
3
 
4
- describe Bankaccounts do
4
+ describe Bankaccounts do
5
5
 
6
- #bankaccounts for merchant cannot be created using the api
6
+ #bankaccounts for merchant cannot be created using the api
7
7
  #the merchant bank account should be created using the Openpay dashboard
8
8
  before(:all) do
9
9
 
10
10
  @merchant_id='mywvupjjs9xdnryxtplq'
11
11
  @private_key='sk_92b25d3baec149e6b428d81abfe37006'
12
12
 
13
- @openpay=OpenpayApi.new(@merchant_id,@private_key)
13
+ @openpay=OpenpayApi.new(@merchant_id, @private_key)
14
14
  @bank_accounts=@openpay.create(:bankaccounts)
15
15
  @customers=@openpay.create(:customers)
16
16
 
17
17
  end
18
18
 
19
-
20
- after(:all) do
21
- @customers.delete_all
19
+ it 'has all required methods' do
20
+ %w(all each create get list delete).each do |meth|
21
+ expect(@bank_accounts).to respond_to(meth)
22
+ end
22
23
  end
23
24
 
24
25
  describe '.create' do
@@ -28,19 +29,18 @@ describe Bankaccounts do
28
29
  customer=@customers.create(customer_hash)
29
30
 
30
31
  account_hash=FactoryGirl.build(:bank_account)
31
- bank=@bank_accounts.create(account_hash,customer['id'])
32
+ bank=@bank_accounts.create(account_hash, customer['id'])
32
33
 
33
- bank_account=@bank_accounts.get(customer['id'],bank['id'])
34
+ bank_account=@bank_accounts.get(customer['id'], bank['id'])
34
35
  expect(bank_account['alias']).to match 'Cuenta principal'
35
36
 
36
- @bank_accounts.delete(customer['id'],bank['id'])
37
+ @bank_accounts.delete(customer['id'], bank['id'])
38
+ @customers.delete(customer['id'])
37
39
 
38
40
  end
39
41
 
40
42
  end
41
43
 
42
-
43
-
44
44
  describe '.get' do
45
45
 
46
46
  it 'get a given bank account for a given customer' do
@@ -49,65 +49,76 @@ describe Bankaccounts do
49
49
  customer=@customers.create(customer_hash)
50
50
 
51
51
  account_hash=FactoryGirl.build(:bank_account)
52
- bank=@bank_accounts.create(account_hash,customer['id'])
52
+ bank=@bank_accounts.create(account_hash, customer['id'])
53
53
 
54
- bank_account=@bank_accounts.get(customer['id'],bank['id'])
54
+ bank_account=@bank_accounts.get(customer['id'], bank['id'])
55
55
  expect(bank_account['alias']).to match 'Cuenta principal'
56
- @bank_accounts.delete(customer['id'],bank['id'])
56
+ @bank_accounts.delete(customer['id'], bank['id'])
57
+ @customers.delete(customer['id'])
57
58
 
58
59
  end
59
60
 
60
61
  end
61
62
 
62
-
63
-
64
63
  describe '.each' do
65
64
 
66
-
67
65
  it 'iterator for all given customer bank accounts' do
68
66
 
69
67
  customer_hash= FactoryGirl.build(:customer)
70
68
  customer=@customers.create(customer_hash)
71
69
 
72
70
  account_hash=FactoryGirl.build(:bank_account)
73
- bank=@bank_accounts.create(account_hash,customer['id'])
71
+ bank=@bank_accounts.create(account_hash, customer['id'])
74
72
 
75
73
  @bank_accounts.each(customer['id']) do |bank_account|
76
- expect( bank_account['alias']).to match 'Cuenta principal'
74
+ expect(bank_account['alias']).to match 'Cuenta principal'
77
75
  end
78
76
 
79
- @bank_accounts.delete(customer['id'],bank['id'])
77
+ @bank_accounts.delete(customer['id'], bank['id'])
80
78
  @customers.delete(customer['id'])
81
79
 
82
80
  end
83
81
 
82
+ end
84
83
 
85
- end
84
+ describe '.list' do
86
85
 
86
+ it 'list the bank accounts using a given filter' do
87
87
 
88
- describe '.list' do
88
+ customer_hash= FactoryGirl.build(:customer)
89
+ customer=@customers.create(customer_hash)
90
+ expect(@bank_accounts.all(customer['id']).size).to be 0
89
91
 
90
- it 'should list the bank accounts using a given filter' do
91
- pending
92
- end
93
- end
92
+ account_hash=FactoryGirl.build(:bank_account)
93
+ bank=@bank_accounts.create(account_hash, customer['id'])
94
+ expect(@bank_accounts.all(customer['id']).size).to be 1
94
95
 
96
+ search_params = OpenpayUtils::SearchParams.new
97
+ search_params.limit = 1
95
98
 
99
+ expect(@bank_accounts.all(customer['id']).size).to eq 1
100
+ expect(@bank_accounts.list(search_params , customer['id']).size).to eq 1
101
+
102
+ @bank_accounts.delete(customer['id'], bank['id'])
103
+ @customers.delete(customer['id'])
104
+
105
+ end
106
+ end
96
107
 
97
108
  describe '.all' do
98
109
 
99
- it 'list all bank accounts for a given customer' do
110
+ it 'all bank accounts for a given customer' do
100
111
 
101
- customer_hash= FactoryGirl.build(:customer)
102
- customer=@customers.create(customer_hash)
103
- expect(@bank_accounts.all(customer['id']).size).to be 0
112
+ customer_hash= FactoryGirl.build(:customer)
113
+ customer=@customers.create(customer_hash)
114
+ expect(@bank_accounts.all(customer['id']).size).to be 0
104
115
 
105
- account_hash=FactoryGirl.build(:bank_account)
106
- bank=@bank_accounts.create(account_hash,customer['id'])
107
- expect(@bank_accounts.all(customer['id']).size).to be 1
116
+ account_hash=FactoryGirl.build(:bank_account)
117
+ bank=@bank_accounts.create(account_hash, customer['id'])
118
+ expect(@bank_accounts.all(customer['id']).size).to be 1
108
119
 
109
- @bank_accounts.delete(customer['id'],bank['id'])
110
- @customers.delete(customer['id'])
120
+ @bank_accounts.delete(customer['id'], bank['id'])
121
+ @customers.delete(customer['id'])
111
122
 
112
123
  end
113
124
 
@@ -117,33 +128,29 @@ end
117
128
 
118
129
  end
119
130
 
120
-
121
131
  describe '.delete' do
122
132
 
123
- it 'deletes a given bank account' do
133
+ it 'deletes a given bank account' do
124
134
 
125
135
  customer_hash= FactoryGirl.build(:customer)
126
136
  customer=@customers.create(customer_hash)
127
137
  expect(@bank_accounts.all(customer['id']).size).to be 0
128
138
 
129
-
130
139
  account_hash=FactoryGirl.build(:bank_account)
131
- bank=@bank_accounts.create(account_hash,customer['id'])
140
+ bank=@bank_accounts.create(account_hash, customer['id'])
132
141
  expect(@bank_accounts.all(customer['id']).size).to be 1
133
142
 
134
- @bank_accounts.delete(customer['id'],bank['id'])
143
+ @bank_accounts.delete(customer['id'], bank['id'])
135
144
  @customers.delete(customer['id'])
136
145
 
137
146
  end
138
147
 
139
-
140
- it 'fails to delete a non existing bank accounts' do
141
- expect { @customers.delete('1111') }.to raise_exception OpenpayTransactionException
148
+ it 'fails to delete a non existing bank accounts' do
149
+ expect { @customers.delete('1111') }.to raise_exception OpenpayTransactionException
142
150
  end
143
151
 
144
152
  end
145
153
 
146
-
147
154
  describe '.delete_all' do
148
155
 
149
156
  it 'deletes all bank accounts' do
@@ -153,34 +160,21 @@ end
153
160
 
154
161
  account_hash=FactoryGirl.build(:bank_account)
155
162
 
156
- @bank_accounts.create(account_hash,customer['id'])
163
+ @bank_accounts.create(account_hash, customer['id'])
157
164
  expect(@bank_accounts.all(customer['id']).size).to be 1
158
165
 
159
166
  @bank_accounts.delete_all(customer['id'])
160
167
  expect(@bank_accounts.all(customer['id']).size).to be 0
161
168
 
169
+ @customers.delete(customer['id'])
162
170
 
163
171
  end
164
172
 
165
173
  it 'fails to deletes all bank accounts when used on PROD' do
166
-
167
174
  @openpayprod=OpenpayApi.new(@merchant_id, @private_key, true)
168
175
  bank_accounts=@openpayprod.create(:bankaccounts)
169
-
170
- expect { bank_accounts.delete_all('111111') }.to raise_exception OpenpayException
171
-
172
-
176
+ expect { bank_accounts.delete_all('111111') }.to raise_exception OpenpayException
173
177
  end
174
178
 
175
179
  end
176
-
177
-
178
-
179
-
180
-
181
-
182
-
183
-
184
-
185
-
186
- end
180
+ end
@@ -3,6 +3,8 @@ require_relative '../spec_helper'
3
3
 
4
4
  describe Cards do
5
5
 
6
+ # %w(create delete get list each all fail).each do |meth|
7
+ # end
6
8
 
7
9
  before(:all) do
8
10
 
@@ -15,17 +17,21 @@ describe Cards do
15
17
 
16
18
  @cards.delete_all
17
19
 
18
-
19
20
  end
20
21
 
21
22
  after(:all) do
22
23
  #each test should build and clean it's own mess.
23
24
  end
24
25
 
26
+ it 'has all required methods' do
27
+ %w(all each create get list delete).each do |meth|
28
+ expect(@cards).to respond_to(meth)
29
+ end
30
+ end
25
31
 
26
32
  describe '.create' do
27
33
 
28
- it 'creates merchant card' do
34
+ it 'creates merchant card' do
29
35
 
30
36
  #creates merchant card
31
37
  card_hash = FactoryGirl.build(:valid_card)
@@ -40,13 +46,11 @@ describe Cards do
40
46
  expect(card['holder_name']).to match(name)
41
47
  expect(card['card_number']).to match('1111')
42
48
 
43
- #cleanup
49
+ #cleanup
44
50
  @cards.delete(card['id'])
45
51
 
46
-
47
52
  end
48
53
 
49
-
50
54
  it 'creates a customer card' do
51
55
 
52
56
  #creates a customer
@@ -61,7 +65,7 @@ describe Cards do
61
65
 
62
66
  id=cards['id']
63
67
 
64
- #performs check
68
+ #performs check
65
69
  customer_cards=customers.all_cards(customer['id'])
66
70
  expect(customer_cards.size).to be 1
67
71
  expect(cards['holder_name']).to match 'Pepe'
@@ -74,10 +78,8 @@ describe Cards do
74
78
  @cards.delete(id, customer['id'])
75
79
  @customers.delete(customer['id'])
76
80
 
77
-
78
81
  end
79
82
 
80
-
81
83
  it 'fails when trying to create an existing merchant card' do
82
84
 
83
85
  #creates merchant card
@@ -92,8 +94,6 @@ describe Cards do
92
94
 
93
95
  end
94
96
 
95
-
96
-
97
97
  it 'fails when trying to create an existing customer card' do
98
98
 
99
99
  #creates a customer
@@ -106,18 +106,15 @@ describe Cards do
106
106
  card=@cards.create(card_hash, customer['id'])
107
107
  expect(card).to be_a(Hash)
108
108
 
109
- #performs check
110
- expect { @cards.create(card_hash,customer['id']) }.to raise_error(OpenpayTransactionException)
109
+ #performs check
110
+ expect { @cards.create(card_hash, customer['id']) }.to raise_error(OpenpayTransactionException)
111
111
 
112
112
  #cleanup
113
- @cards.delete(card['id'],customer['id'])
113
+ @cards.delete(card['id'], customer['id'])
114
114
  @customers.delete(customer['id'])
115
115
 
116
-
117
116
  end
118
117
 
119
-
120
-
121
118
  it 'fails when using an expired card' do
122
119
  card_hash = FactoryGirl.build(:expired_card)
123
120
  #check
@@ -125,14 +122,13 @@ describe Cards do
125
122
  #extended check
126
123
  begin
127
124
  @cards.create(card_hash)
128
- rescue OpenpayTransactionException => e
125
+ rescue OpenpayTransactionException => e
129
126
  expect(e.description).to match 'The card has expired'
130
127
  expect(e.error_code).to be 3002
131
128
  end
132
129
 
133
130
  end
134
131
 
135
-
136
132
  it 'fails when using a stolen card' do
137
133
  card_json = FactoryGirl.build(:valid_card, card_number: '4000000000000119')
138
134
  expect { @cards.create(card_json) }.to raise_error(OpenpayTransactionException)
@@ -140,7 +136,6 @@ describe Cards do
140
136
 
141
137
  end
142
138
 
143
-
144
139
  describe '.each' do
145
140
 
146
141
  it 'iterates over all existing merchant cards' do
@@ -149,11 +144,8 @@ describe Cards do
149
144
  end
150
145
  end
151
146
 
152
-
153
147
  it 'iterates over all existing customer cards' do
154
148
 
155
-
156
-
157
149
  #creates a customer
158
150
  card_hash = FactoryGirl.build(:valid_card, holder_name: 'Pepe')
159
151
  customers=@openpay.create(:customers)
@@ -168,26 +160,16 @@ describe Cards do
168
160
  expect(c['expiration_year']).to match '14'
169
161
  end
170
162
 
171
-
172
163
  #cleanup
173
- @cards.delete(card['id'],customer['id'])
164
+ @cards.delete(card['id'], customer['id'])
174
165
  @customers.delete(customer['id'])
175
166
 
176
-
177
-
178
-
179
167
  end
180
168
 
181
-
182
-
183
-
184
-
185
169
  end
186
170
 
187
-
188
171
  describe '.delete' do
189
172
 
190
-
191
173
  it 'deletes a merchant card' do
192
174
 
193
175
  #creates merchant card
@@ -199,20 +181,15 @@ describe Cards do
199
181
  name='Vicente Olmos'
200
182
 
201
183
  #perform check
202
-
203
184
  card=@cards.delete(id)
204
185
  expect { @cards.get(id) }.to raise_exception(OpenpayTransactionException)
205
186
 
206
-
207
187
  end
208
188
 
209
-
210
-
211
- it 'fails to deletes a non existing card' do
189
+ it 'fails to deletes a non existing card' do
212
190
  expect { @cards.delete('1111111') }.to raise_exception(OpenpayTransactionException)
213
191
  end
214
192
 
215
-
216
193
  it 'deletes a customer card' do
217
194
 
218
195
  #create customer
@@ -228,22 +205,18 @@ describe Cards do
228
205
  @cards.delete(card['id'], customer['id'])
229
206
 
230
207
  #perform check
231
- expect { @cards.get(card['id'],customer['id'])}.to raise_exception(OpenpayTransactionException)
208
+ expect { @cards.get(card['id'], customer['id']) }.to raise_exception(OpenpayTransactionException)
232
209
 
233
210
  end
234
211
 
235
-
236
212
  it 'fails to deletes a non existing customer card' do
237
213
  expect { @cards.delete('1111111', '1111') }.to raise_exception(OpenpayTransactionException)
238
214
  end
239
215
 
240
-
241
216
  end
242
217
 
243
-
244
218
  describe '.get' do
245
219
 
246
-
247
220
  it ' gets an existing merchant card' do
248
221
 
249
222
  #create merchant card
@@ -263,13 +236,11 @@ describe Cards do
263
236
 
264
237
  end
265
238
 
266
-
267
239
  it 'fails when getting a non existing card' do
268
240
  expect { @cards.get('11111') }.to raise_exception(OpenpayTransactionException)
269
241
  end
270
242
 
271
-
272
- it ' gets an existing customer card' do
243
+ it ' gets an existing customer card' do
273
244
 
274
245
  #create customer
275
246
  customer_hash = FactoryGirl.build(:customer)
@@ -293,18 +264,15 @@ describe Cards do
293
264
 
294
265
  end
295
266
 
296
-
297
267
  it 'fails when getting a non existing customer card' do
298
268
  expect { @cards.get('11111', '1111') }.to raise_exception(OpenpayTransactionException)
299
269
  end
300
270
 
301
-
302
271
  end
303
272
 
304
-
305
273
  describe '.all' do
306
274
 
307
- it 'list all merchant cards' do
275
+ it 'all merchant cards' do
308
276
 
309
277
  #check initial state
310
278
  expect(@cards.all.size).to be 0
@@ -322,9 +290,7 @@ describe Cards do
322
290
 
323
291
  end
324
292
 
325
-
326
- it 'list all customer cards' do
327
-
293
+ it 'all customer cards' do
328
294
 
329
295
  #create customer
330
296
  customer_hash = FactoryGirl.build(:customer)
@@ -346,34 +312,56 @@ describe Cards do
346
312
 
347
313
  end
348
314
 
349
-
350
- it 'list cards for a non existing customer' do
315
+ it 'cards for a non existing customer' do
351
316
  expect { @cards.all('111111') }.to raise_exception OpenpayTransactionException
352
317
  end
353
318
 
354
-
355
319
  end
356
320
 
357
-
358
321
  describe '.list' do
359
322
 
360
323
  it 'list the merchant cards using a filter' do
361
324
 
362
- pending
363
- #creation[gte]=yyyy-mm-dd
364
- #creation[lte]=yyyy-mm-dd
365
- #offset=0&
366
- #limit=10
367
- # @cards.list('2000-01-01','2000-01-01',0,10)
325
+ #create merchant card
326
+ card_hash = FactoryGirl.build(:valid_card)
327
+ card1 = @cards.create(card_hash)
368
328
 
329
+ card_hash = FactoryGirl.build(:valid_card2)
330
+ card2 = @cards.create(card_hash)
369
331
 
332
+ search_params = OpenpayUtils::SearchParams.new
333
+ search_params.limit = 1
334
+ expect(@cards.list(search_params).size).to eq 1
335
+ @cards.delete_all
370
336
  end
371
337
 
372
-
373
338
  it 'list the customer cards using a filter' do
374
- pending
375
- end
376
339
 
340
+ #create customer
341
+ customer_hash = FactoryGirl.build(:customer)
342
+ customer = @customers.create(customer_hash)
343
+
344
+ #creates card
345
+ bank_name ='Banamex'
346
+ card_hash = FactoryGirl.build(:valid_card)
347
+ card = @cards.create(card_hash, customer['id'])
348
+ id = card['id']
349
+
350
+ #creates card 2
351
+ bank_name = 'Bancomer'
352
+ card_hash = FactoryGirl.build(:valid_card2)
353
+ card = @cards.create(card_hash, customer['id'])
354
+ id = card['id']
355
+
356
+ search_params = OpenpayUtils::SearchParams.new
357
+ search_params.limit = 1
358
+
359
+ expect(@cards.all(customer['id']).size).to eq 2
360
+ expect(@cards.list(search_params , customer['id']).size).to eq 1
361
+
362
+ @cards.delete_all(customer['id'])
363
+
364
+ end
377
365
 
378
366
  end
379
367
 
@@ -388,7 +376,6 @@ describe Cards do
388
376
 
389
377
  end
390
378
 
391
-
392
379
  it 'deletes all existing merchant cards' do
393
380
 
394
381
  #create merchant card
@@ -399,7 +386,6 @@ describe Cards do
399
386
  card2_json = FactoryGirl.build(:valid_card2).to_json
400
387
  @cards.create(card2_json)
401
388
 
402
-
403
389
  #perform check
404
390
  expect(@cards.all.size).to be 2
405
391
 
@@ -409,12 +395,10 @@ describe Cards do
409
395
  #perform check
410
396
  expect(@cards.all.size).to be 0
411
397
 
412
-
413
398
  end
414
399
 
415
400
  it 'deletes all existing cards for a given customer' do
416
401
 
417
-
418
402
  #creates customer
419
403
  customer_hash = FactoryGirl.build(:customer)
420
404
  customer=@customers.create(customer_hash)
@@ -435,12 +419,8 @@ describe Cards do
435
419
  #check
436
420
  expect(@cards.all(customer['id']).size).to be 0
437
421
 
438
-
439
-
440
422
  end
441
423
 
442
-
443
424
  end
444
425
 
445
-
446
- end
426
+ end