openpay 1.0.3 → 1.0.4

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.
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
@@ -2,9 +2,6 @@ require_relative '../spec_helper'
2
2
 
3
3
  describe Charges do
4
4
 
5
-
6
-
7
-
8
5
  before(:all) do
9
6
 
10
7
  @merchant_id='mywvupjjs9xdnryxtplq'
@@ -17,28 +14,24 @@ describe Charges do
17
14
  @cards=@openpay.create(:cards)
18
15
  @bank_accounts=@openpay.create(:bankaccounts)
19
16
 
20
-
17
+ @cards.delete_all
21
18
 
22
19
  end
23
20
 
24
-
25
- after(:all) do
26
-
21
+ it 'has all required methods' do
22
+ %w(all each create get list delete).each do |meth|
23
+ expect(@charges).to respond_to(meth)
24
+ end
27
25
  end
28
26
 
29
-
30
-
31
27
  describe '.create' do
32
28
 
33
29
  it 'creates a new merchant charge using the card method using a pre-stored card' do
34
30
 
35
-
36
31
  #create card
37
32
  card_hash=FactoryGirl.build(:valid_card)
38
33
  card=@cards.create(card_hash)
39
34
 
40
-
41
-
42
35
  #create charge attached to prev created card
43
36
  charge_hash=FactoryGirl.build(:card_charge, source_id: card['id'], order_id: card['id'],amount: 101)
44
37
  charge=@charges.create(charge_hash)
@@ -47,13 +40,11 @@ describe Charges do
47
40
  stored_charge=@charges.get(charge['id'])
48
41
  expect(stored_charge['amount']).to be_within(0.1).of(101)
49
42
 
50
- #clean up
43
+ #clean up
51
44
  @cards.delete(card['id'])
52
45
 
53
-
54
46
  end
55
47
 
56
-
57
48
  it 'creates a new customer charge using the card method using a pre-stored card' do
58
49
 
59
50
  #create new customer
@@ -78,7 +69,6 @@ describe Charges do
78
69
 
79
70
  end
80
71
 
81
-
82
72
  it 'creates a new customer charge using the bank_account method' do
83
73
 
84
74
  #create new customer
@@ -90,7 +80,7 @@ describe Charges do
90
80
  account=@bank_accounts.create(account_hash,customer['id'])
91
81
 
92
82
  #create charge
93
- charge_hash=FactoryGirl.build(:bank_charge, source_id:account['id'],order_id: account['id'])
83
+ charge_hash=FactoryGirl.build(:bank_charge, order_id: account['id'])
94
84
  charge=@charges.create(charge_hash,customer['id'])
95
85
 
96
86
  #perform check
@@ -103,18 +93,12 @@ describe Charges do
103
93
 
104
94
  end
105
95
 
106
-
107
-
108
96
  end
109
97
 
110
-
111
-
112
98
  describe '.get' do
113
99
 
114
-
115
100
  it 'gets a merchant charge' do
116
101
 
117
-
118
102
  #create card
119
103
  card_hash=FactoryGirl.build(:valid_card)
120
104
  card=@cards.create(card_hash)
@@ -130,12 +114,9 @@ describe Charges do
130
114
  #clean up
131
115
  @cards.delete(card['id'])
132
116
 
133
-
134
-
135
117
  end
136
118
 
137
-
138
- it 'gets a customer charge' do
119
+ it 'gets a customer charge' do
139
120
 
140
121
  #create new customer
141
122
  customer_hash= FactoryGirl.build(:customer)
@@ -159,46 +140,30 @@ describe Charges do
159
140
 
160
141
  end
161
142
 
162
-
163
-
164
-
165
-
166
143
  end
167
144
 
168
-
169
-
170
-
171
145
  describe '.all' do
172
146
 
173
- it 'list all merchant charges' do
174
-
147
+ it 'all merchant charges' do
175
148
  #TODO test can be improved, but since charges cannot be deleted it make this difficult
176
149
  expect(@charges.all.size).to be_a Integer
177
-
178
150
  end
179
151
 
180
-
181
- it 'list all customer charges' do
152
+ it 'all customer charges' do
182
153
  #create new customer
183
154
  customer_hash= FactoryGirl.build(:customer)
184
155
  customer=@customers.create(customer_hash)
185
156
 
186
-
187
157
  expect(@charges.all(customer['id']).size).to be 0
188
158
  @customers.delete(customer['id'])
189
159
 
190
-
191
160
  end
192
161
 
193
162
  end
194
163
 
195
-
196
-
197
-
198
164
  describe '.capture' do
199
165
 
200
-
201
- it 'captures a merchant card charge' do
166
+ it 'captures a merchant card charge' do
202
167
 
203
168
  #create new customer
204
169
  customer_hash= FactoryGirl.build(:customer)
@@ -209,7 +174,7 @@ describe Charges do
209
174
  card=@cards.create(card_hash)
210
175
 
211
176
  #create merchant charge
212
- charge_hash=FactoryGirl.build(:card_charge, source_id:card['id'],order_id: card['id'],amount: 4000,capture:'false')
177
+ charge_hash=FactoryGirl.build(:card_charge, source_id:card['id'],order_id: card['id'],amount: 4000, capture:'false')
213
178
  charge=@charges.create(charge_hash)
214
179
 
215
180
  #capture merchant charge
@@ -221,7 +186,7 @@ describe Charges do
221
186
 
222
187
  end
223
188
 
224
- it 'captures an customer card charge' do
189
+ it 'captures a customer card charge' do
225
190
  #create new customer
226
191
  customer_hash= FactoryGirl.build(:customer)
227
192
  customer=@customers.create(customer_hash)
@@ -237,25 +202,73 @@ describe Charges do
237
202
  #capture customer charge
238
203
  @charges.capture(charge['id'],customer['id'])
239
204
 
205
+
240
206
  #clean up
241
207
  @cards.delete(card['id'],customer['id'])
242
208
  @customers.delete(customer['id'])
243
209
  end
244
210
 
211
+ end
245
212
 
213
+ describe '.confirm_capture' do
246
214
 
215
+ it 'confirms a capture on a merchant charge' do
247
216
 
248
- end
217
+ #create new customer
218
+ customer_hash= FactoryGirl.build(:customer)
219
+ customer=@customers.create(customer_hash)
249
220
 
221
+ #create merchant card
222
+ card_hash=FactoryGirl.build(:valid_card)
223
+ card=@cards.create(card_hash)
250
224
 
225
+ #create merchant charge
226
+ charge_hash=FactoryGirl.build(:card_charge, source_id:card['id'],order_id: card['id'],amount: 4000, capture:'false')
227
+ charge=@charges.create(charge_hash)
251
228
 
229
+ confirm_capture_options = { transaction_id: charge['id'], amount: 100 }
252
230
 
253
- describe '.refund' do
231
+ #confirm capture
232
+ res = @charges.confirm_capture(confirm_capture_options)
233
+ expect(res['amount']).to eq 100
254
234
 
235
+ #clean up
236
+ @cards.delete(card['id'])
237
+ @customers.delete(customer['id'])
238
+
239
+ end
255
240
 
241
+ it 'confirms a capture on a customer charge' do
242
+
243
+ customer_hash= FactoryGirl.build(:customer)
244
+ customer=@customers.create(customer_hash)
245
+
246
+ #create customer card
247
+ card_hash=FactoryGirl.build(:valid_card)
248
+ card=@cards.create(card_hash,customer['id'])
249
+
250
+ #create charge
251
+ charge_hash=FactoryGirl.build(:card_charge, source_id:card['id'],order_id: card['id'],amount: 4000,capture:'false')
252
+ charge=@charges.create(charge_hash,customer['id'])
253
+
254
+ confirm_capture_options = { customer_id: customer['id'], transaction_id: charge['id'], amount: 100 }
255
+
256
+ #confirm capture
257
+ res = @charges.confirm_capture(confirm_capture_options)
258
+ expect(res['amount']).to eq 100
259
+
260
+ #clean up
261
+ @cards.delete(card['id'],customer['id'])
262
+ @customers.delete(customer['id'])
263
+
264
+ end
265
+
266
+ end
267
+
268
+ describe '.refund' do
256
269
 
257
270
  #Refunds apply only for card charges
258
- it 'refunds an existing merchant charge' do
271
+ it 'refunds an existing merchant charge' do
259
272
  #create card
260
273
  card_hash=FactoryGirl.build(:valid_card)
261
274
  card=@cards.create(card_hash)
@@ -271,16 +284,12 @@ describe Charges do
271
284
  @charges.refund(charge['id'],refund_description)
272
285
  expect(@charges.get(charge['id'])['refund']['amount'] ).to be_within(0.1).of(505)
273
286
 
274
-
275
287
  #clean up
276
288
  @cards.delete(card['id'])
277
289
 
278
290
  end
279
291
 
280
-
281
-
282
-
283
- it 'refunds an existing customer charge' do
292
+ it 'refunds an existing customer charge' do
284
293
  #create new customer
285
294
  customer_hash= FactoryGirl.build(:customer)
286
295
  customer=@customers.create(customer_hash)
@@ -310,42 +319,47 @@ describe Charges do
310
319
 
311
320
  end
312
321
 
322
+ describe '.list' do
313
323
 
324
+ it 'list customer charges' do
314
325
 
326
+ #create new customer
327
+ customer_hash= FactoryGirl.build(:customer)
328
+ customer=@customers.create(customer_hash)
315
329
 
330
+ #create customer card
331
+ card_hash=FactoryGirl.build(:valid_card)
332
+ card=@cards.create(card_hash,customer['id'])
316
333
 
334
+ #create charge
335
+ charge_hash=FactoryGirl.build(:card_charge, source_id:card['id'],order_id: card['id'])
336
+ charge=@charges.create(charge_hash,customer['id'])
337
+ charge_hash=FactoryGirl.build(:card_charge, source_id:card['id'],order_id: card['id']+"1")
338
+ charge2=@charges.create(charge_hash,customer['id'])
317
339
 
340
+ #perform check
341
+ search_params = OpenpayUtils::SearchParams.new
342
+ search_params.limit = 1
343
+ expect(@charges.all(customer['id']).size).to eq 2
344
+ expect(@charges.list(search_params,customer['id']).size).to eq 1
318
345
 
346
+ #clean up
347
+ @cards.delete(card['id'],customer['id'])
348
+ @customers.delete(customer['id'])
319
349
 
320
-
321
- describe '.list' do
322
-
323
-
324
- it 'list merchant charges' do
325
- pending
326
- end
327
-
328
-
329
-
330
- it 'list customer charges' do
331
- pending
332
350
  end
333
351
 
334
-
335
352
  end
336
353
 
337
-
338
354
  describe '.each' do
339
355
 
340
356
  it 'iterates over merchant charges' do
341
- @charges.each do |charge|
357
+ @charges.each do |charge|
342
358
  #perform check.
343
359
  expect(charge['amount']).to be_a Float
344
360
  end
345
361
  end
346
362
 
347
-
348
-
349
363
  it 'iterate over customer charges' do
350
364
 
351
365
  #create new customer
@@ -363,13 +377,11 @@ describe Charges do
363
377
 
364
378
  @charges.create(charge2_hash,customer['id'])
365
379
 
366
-
367
380
  @charges.each(customer['id']) do |charge|
368
381
  expect(charge['operation_type']).to match 'in'
369
- expect(charge['amount']).to be_within(0.1).of(4)
382
+ expect(charge['amount']).to be_within(0.1).of(4)
370
383
  end
371
384
 
372
-
373
385
  #cleanup
374
386
  @cards.delete(card['id'],customer['id'])
375
387
  @customers.delete(customer['id'])
@@ -378,11 +390,4 @@ describe Charges do
378
390
 
379
391
  end
380
392
 
381
-
382
-
383
-
384
-
385
-
386
-
387
-
388
- end
393
+ end
@@ -1,9 +1,7 @@
1
1
  require_relative '../spec_helper'
2
2
 
3
-
4
3
  describe Customers do
5
4
 
6
-
7
5
  before(:all) do
8
6
 
9
7
  @merchant_id='mywvupjjs9xdnryxtplq'
@@ -12,14 +10,24 @@ describe Customers do
12
10
  @openpay=OpenpayApi.new(@merchant_id, @private_key)
13
11
  @customers=@openpay.create(:customers)
14
12
 
13
+ @customers.delete_all
14
+
15
+ end
16
+
17
+ after(:all) do
18
+ @customers.delete_all
15
19
  end
16
20
 
21
+ it 'has all required methods' do
22
+ %w(all each create get list delete).each do |meth|
23
+ expect(@customers).to respond_to(meth)
24
+ end
25
+ end
17
26
 
18
27
  describe '.create' do
19
28
 
20
29
  it 'creates a customer' do
21
30
 
22
-
23
31
  #creates a new customer
24
32
  name='Juan'
25
33
  last_name='Perez'
@@ -46,7 +54,6 @@ describe Customers do
46
54
 
47
55
  end
48
56
 
49
-
50
57
  it 'fails when passing invalid information' do
51
58
 
52
59
  #check no errors
@@ -62,8 +69,7 @@ describe Customers do
62
69
  @customers.create(customer_hash)
63
70
  rescue OpenpayTransactionException => e
64
71
  expect(e.http_code).to be 400
65
- expect(e.description).to match 'not a well-formed email address'
66
-
72
+ expect(e.description).to match /email no es una direcci.n de correo bien formada/
67
73
  end
68
74
 
69
75
  expect(@customers.errors?).to be_true
@@ -72,10 +78,8 @@ describe Customers do
72
78
 
73
79
  end
74
80
 
75
-
76
81
  describe '.delete' do
77
82
 
78
-
79
83
  it 'deletes an existing customer' do
80
84
  #creates customer
81
85
  customer_hash = FactoryGirl.build(:customer, name: :delete_me)
@@ -89,7 +93,6 @@ describe Customers do
89
93
 
90
94
  end
91
95
 
92
-
93
96
  describe '.get' do
94
97
 
95
98
  it 'get a customer' do
@@ -105,33 +108,16 @@ describe Customers do
105
108
  @customers.delete(id)
106
109
  end
107
110
 
108
-
109
111
  end
110
112
 
111
-
112
113
  describe '.each' do
113
114
  it 'list all customers' do
114
- #clean state just in case
115
- @customers.delete_all
116
-
117
- #create customers
118
- name='cust1'
119
- customer_hash = FactoryGirl.build(:customer, name: name)
120
- customer=@customers.create(customer_hash)
121
- id=customer['id']
122
- customer2=@customers.create(customer_hash)
123
- id2=customer2['id']
124
- #perform check
125
115
  @customers.each do |cust|
126
- expect(cust['name']).to match 'cust1'
116
+ expect(cust['id']).to match /.+/
127
117
  end
128
- #cleanup
129
- @customers.delete(id)
130
- @customers.delete(id2)
131
118
  end
132
119
  end
133
120
 
134
-
135
121
  describe '.update' do
136
122
 
137
123
  it 'updates an existing customer' do
@@ -157,15 +143,36 @@ describe Customers do
157
143
 
158
144
  end
159
145
 
146
+ describe '.list' do
147
+
148
+ it 'list customers given the filter' do
149
+ # creates customer
150
+ name='customer_update_test'
151
+ customer_hash = FactoryGirl.build(:customer, name: name)
152
+
153
+ customer=@customers.create(customer_hash)
154
+ id=customer['id']
155
+
156
+ search_params = OpenpayUtils::SearchParams.new
157
+ search_params.limit=1
158
+
159
+ #perform check
160
+ expect(@customers.list(search_params).size).to eq 1
160
161
 
162
+ #cleanup
163
+ @customers.delete(id)
161
164
 
165
+ end
166
+
167
+ end
162
168
 
163
169
  describe '.all' do
164
170
 
165
- it 'list all the customers' do
171
+ it 'all the customers' do
166
172
 
173
+ @customers.delete_all
167
174
  #initial state check
168
- expect(@customers.all.size).to be 0
175
+ initial_num = @customers.all.size
169
176
 
170
177
  # creates customer
171
178
  name='customer_update_test'
@@ -173,21 +180,15 @@ describe Customers do
173
180
  customer=@customers.create(customer_hash)
174
181
 
175
182
  #performs check
176
- expect(@customers.all.size).to be 1
183
+ expect(@customers.all.size).to eq (initial_num + 1)
177
184
 
178
185
  #cleanup
179
186
  @customers.delete(customer['id'])
180
187
 
181
- #performs check
182
- expect(@customers.all.size).to be 0
183
-
184
-
185
188
  end
186
189
 
187
-
188
190
  end
189
191
 
190
-
191
192
  describe '.delete_all' do
192
193
 
193
194
  it 'deletes all customer records' do
@@ -211,20 +212,9 @@ describe Customers do
211
212
  cust=@openpayprod.create(:customers)
212
213
  expect { cust.delete_all }.to raise_exception OpenpayException
213
214
 
214
-
215
215
  end
216
216
 
217
-
218
217
  end
219
218
 
220
-
221
219
  end
222
220
 
223
-
224
-
225
-
226
-
227
-
228
-
229
-
230
-