mundipagg_v1 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8ec569f29da2cd58faa4f672595b4f10d3fa80d1
4
+ data.tar.gz: 9474988b94614f5499d477c00240fe3218afdee7
5
+ SHA512:
6
+ metadata.gz: 29df31f25a440ffffe6230f3482466305c3040194dddc897e1653008ea5166cab4eba36953544197e595fb7365694dfaabfeb2c9c4e9e40e8ecfd87ce46184ec
7
+ data.tar.gz: c356ecc47dbec24044bc81b120970b76c8799de4d34650891d4cf300669796e557a2ac4484b165b7523a9cfa520008043c98f6ffa9a5abf26af4936a4f528606
File without changes
@@ -0,0 +1,574 @@
1
+ module MundipaggV1Sdk
2
+
3
+ require "base64"
4
+ require 'rest-client'
5
+ require 'json'
6
+
7
+ @@end_point = "https://api.mundipagg.com/core/v1"
8
+
9
+ @@SERVICE_HEADERS = {
10
+ :Authorization => "Basic #{::Base64.encode64("#{ENV['MUNDIPAGG_SECRET_KEY']}:")}",
11
+ :Accept => 'application/json',
12
+ :"Content-Type" => 'application/json'
13
+ }
14
+
15
+ # funcao de post generica
16
+ def postRequest(payload, url)
17
+ begin
18
+ response = RestClient.post("#{@@end_point}#{url}", payload, headers=@@SERVICE_HEADERS)
19
+ rescue RestClient::ExceptionWithResponse => err
20
+ handle_error_response(err)
21
+ response = err.response
22
+ end
23
+
24
+ JSON.load response
25
+ rescue JSON::ParserError => err
26
+ response
27
+ end
28
+
29
+ # funcao patch generica
30
+ def patchRequest(payload, url)
31
+ begin
32
+ response = RestClient.patch("#{@@end_point}#{url}", payload, headers=@@SERVICE_HEADERS)
33
+ rescue RestClient::ExceptionWithResponse => err
34
+ handle_error_response(err)
35
+ response = err.response
36
+ end
37
+
38
+ JSON.load response
39
+ rescue JSON::ParserError => err
40
+ response
41
+ end
42
+
43
+ # funcao de delete generica
44
+ def deleteRequest(url)
45
+ begin
46
+ response = RestClient.delete("#{@@end_point}#{url}", headers=@@SERVICE_HEADERS)
47
+ rescue RestClient::ExceptionWithResponse => err
48
+ handle_error_response(err)
49
+ response = err.response
50
+ end
51
+
52
+ JSON.load response
53
+ rescue JSON::ParserError => err
54
+ response
55
+ end
56
+
57
+ # funcao get generica
58
+ def getRequest(url)
59
+ begin
60
+ response = RestClient.get("#{@@end_point}#{url}", headers=@@SERVICE_HEADERS)
61
+ rescue RestClient::ExceptionWithResponse => err
62
+ handle_error_response(err)
63
+ response = err.response
64
+ end
65
+
66
+ v = JSON.load response
67
+ return v["data"] if v["data"] != nil
68
+ return v
69
+ rescue JSON::ParserError => err
70
+ response
71
+ end
72
+
73
+ # funcao get generica
74
+ def putRequest(payload, url)
75
+ begin
76
+ response = RestClient.put("#{@@end_point}#{url}", payload, headers=@@SERVICE_HEADERS)
77
+ rescue RestClient::ExceptionWithResponse => err
78
+ handle_error_response(err)
79
+ response = err.response
80
+ end
81
+
82
+ v = JSON.load response
83
+ return v["data"] if v["data"] != nil
84
+ return v
85
+ rescue JSON::ParserError => err
86
+ response
87
+ end
88
+
89
+ def handle_error_response(err)
90
+ # MundipaggV1Sdk::AuthenticationError.new
91
+ err_response = JSON.load(err.response)
92
+ puts err_response["message"]
93
+ puts JSON.pretty_generate(err_response["errors"]) unless err_response["errors"].nil?
94
+ raise(::Exception.new( err_response["message"] ))
95
+ end
96
+
97
+ end
98
+
99
+ class MundipaggV1Sdk::Customer
100
+
101
+ extend MundipaggV1Sdk
102
+
103
+ def self.create(customer)
104
+ customer = {} if customer == nil
105
+ postRequest(customer.to_json, "/customers")
106
+ end
107
+
108
+ def self.retrieve(customer_id)
109
+ ArgumentError.new("Customer id should be a String") if customer_id == nil
110
+ getRequest("/customers/#{customer_id}")
111
+ end
112
+
113
+ def self.list
114
+ getRequest("/customers")
115
+ end
116
+
117
+ def self.edit(customer_id, customer)
118
+ ArgumentError.new("Customer id should be a String") if customer_id == nil
119
+ customer = {} if customer == nil
120
+ putRequest(customer.to_json, "/customers")
121
+ end
122
+
123
+ end
124
+
125
+ class MundipaggV1Sdk::AccessToken
126
+
127
+ extend MundipaggV1Sdk
128
+
129
+ def self.create(customer_id)
130
+ ArgumentError.new("Customer id should be a String") if customer_id == nil
131
+ body = {}
132
+ postRequest(body.to_json, "/customers/#{customer_id}/access-tokens")
133
+ end
134
+
135
+ def self.retrieve(customer_id, access_token_id)
136
+ ArgumentError.new("Customer id should be a String") if customer_id == nil
137
+ ArgumentError.new("Access Token id should be a String") if access_token_id == nil
138
+ getRequest("/customers/#{customer_id}/access-tokens/#{access_token_id}")
139
+ end
140
+
141
+ def self.list(customer_id)
142
+ ArgumentError.new("Customer id should be a String") if customer_id == nil
143
+ getRequest("/customers/#{customer_id}/access-tokens")
144
+ end
145
+
146
+ def self.delete(customer_id, access_token_id)
147
+ ArgumentError.new("Customer id should be a String") if customer_id == nil
148
+ ArgumentError.new("Access Token id should be a String") if access_token_id == nil
149
+ deleteRequest("/customers/#{customer_id}/access-tokens/#{access_token_id}")
150
+ end
151
+
152
+ end
153
+
154
+ class MundipaggV1Sdk::Card
155
+
156
+ extend MundipaggV1Sdk
157
+
158
+ def self.create(customer_id, card)
159
+ card = {} if card == nil
160
+ postRequest(card.to_json, "/customers/#{customer_id}/cards")
161
+ end
162
+
163
+ def self.retrieve(customer_id, card_id)
164
+ ArgumentError.new("Customer id should be a String") if customer_id == nil
165
+ ArgumentError.new("Card can't be nil") if card_id == nil
166
+ getRequest("/customers/#{customer_id}/cards/#{card_id}")
167
+ end
168
+
169
+ def self.list(customer_id)
170
+ ArgumentError.new("Customer id should be a String") if customer_id == nil
171
+ getRequest("/customers/#{customer_id}/cards")
172
+ end
173
+
174
+ def self.delete(customer_id, card_id)
175
+ ArgumentError.new("Customer id should be a String") if customer_id == nil
176
+ ArgumentError.new("Card id should be a String") if card_id == nil
177
+ deleteRequest("/customers/#{customer_id}/cards/#{card_id}")
178
+ end
179
+
180
+ end
181
+
182
+ class MundipaggV1Sdk::Charge
183
+
184
+ extend MundipaggV1Sdk
185
+
186
+ def self.create(charge)
187
+ charge = {} if charge == nil
188
+ postRequest(charge.to_json, "/charges")
189
+ end
190
+
191
+ def self.retrieve(charge_id)
192
+ ArgumentError.new("Charge id should be a String") if charge_id == nil
193
+ getRequest("/charges/#{charge_id}")
194
+ end
195
+
196
+ def self.list(order_id = nil, customer_id = nil, page = nil, size = nil)
197
+ query = []
198
+ query << "order_id=#{order_id}" if !order_id.nil?
199
+ query << "customer_id=#{customer_id}" if !customer_id.nil?
200
+ query << "page=#{page}" if !page.nil?
201
+ query << "size=#{size}" if !size.nil?
202
+ query.first.prepend("?") if !query.empty?
203
+ getRequest("/charges#{query.join("&")}")
204
+ end
205
+
206
+ def self.capture(charge_id, capture)
207
+ ArgumentError.new("Charge id should be a String") if charge_id == nil
208
+ capture = {} if capture == nil
209
+ postRequest(capture.to_json, "/charges/#{charge_id}/capture")
210
+ end
211
+
212
+ def self.delete(charge_id, params)
213
+ ArgumentError.new("Charge id should be a String") if charge_id == nil
214
+ params = {} if params == nil
215
+ deleteRequest(params.to_json, "/charges/#{charge_id}")
216
+ end
217
+
218
+ def self.edit_credit_card(charge_id, params)
219
+ ArgumentError.new("Charge id should be a String") if charge_id == nil
220
+ params = {} if params == nil
221
+ patchRequest(params, "/charges/#{charge_id}/credit-card")
222
+ end
223
+
224
+ def self.edit_due_date(charge_id, params)
225
+ ArgumentError.new("Charge id should be a String") if charge_id == nil
226
+ params = {} if params == nil
227
+ patchRequest(params, "/charges/#{charge_id}/due-date")
228
+ end
229
+
230
+ def self.edit_payment_method(charge_id, params)
231
+ ArgumentError.new("Charge id should be a String") if charge_id == nil
232
+ params = {} if params == nil
233
+ patchRequest(params, "/charges/#{charge_id}/retry")
234
+ end
235
+
236
+ def self.retry(charge_id)
237
+ ArgumentError.new("Charge id should be a String") if charge_id == nil
238
+ params = {}
239
+ postRequest(params, "/charges/#{charge_id}/retry")
240
+ end
241
+
242
+ end
243
+
244
+ class MundipaggV1Sdk::Plan
245
+
246
+ extend MundipaggV1Sdk
247
+
248
+ def self.create(plan)
249
+ plan = {} if plan == nil
250
+ postRequest(plan.to_json, "/plans")
251
+ end
252
+
253
+ def self.retrieve(plan_id)
254
+ ArgumentError.new("Plan id should be a String") if plan_id == nil
255
+ getRequest("/plans/#{plan_id}")
256
+ end
257
+
258
+ def self.list(page = nil, size = nil)
259
+ query = []
260
+ query << "page=#{page}" if !page.nil?
261
+ query << "size=#{size}" if !size.nil?
262
+ query.first.prepend("?") if !query.empty?
263
+ getRequest("/plans#{query.join("&")}")
264
+ end
265
+
266
+ def self.list_subscriptions(plan_id)
267
+ ArgumentError.new("Plan id should be a String") if plan_id == nil
268
+ query = []
269
+ query << "page=#{page}" if !page.nil?
270
+ query << "size=#{size}" if !size.nil?
271
+ query.first.prepend("?") if !query.empty?
272
+ getRequest("/plans/#{plan_id}/subscriptions#{query.join("&")}")
273
+ end
274
+
275
+ def self.edit(plan_id, plan)
276
+ ArgumentError.new("Plan id should be a String") if plan_id == nil
277
+ plan = {} if plan == nil
278
+ putRequest(plan.to_json, "/plans")
279
+ end
280
+
281
+ def self.delete(plan_id)
282
+ ArgumentError.new("Plan id should be a String") if plan_id == nil
283
+ deleteRequest("/plans/#{plan_id}")
284
+ end
285
+
286
+ end
287
+
288
+ class MundipaggV1Sdk::PlanItem
289
+
290
+ extend MundipaggV1Sdk
291
+
292
+ def self.include_in_plan(plan_id, item)
293
+ ArgumentError.new("Plan id should be a String") if plan_id == nil
294
+ item = {} if item == nil
295
+ postRequest(item.to_json, "/plans/#{plan_id}/items")
296
+ end
297
+
298
+ def self.edit(plan_id, item_id, item)
299
+ ArgumentError.new("Plan id should be a String") if plan_id == nil
300
+ ArgumentError.new("Item id should be a String") if item_id == nil
301
+ item = {} if item == nil
302
+ putRequest(item.to_json, "/plans/#{plan_id}/items/#{item_id}")
303
+ end
304
+
305
+ def self.remove_from_plan(plan_id, item_id, item)
306
+ ArgumentError.new("Plan id should be a String") if plan_id == nil
307
+ ArgumentError.new("Item id should be a String") if item_id == nil
308
+ deleteRequest("/plans/#{plan_id}/items/#{item_id}")
309
+ end
310
+
311
+ end
312
+
313
+ class MundipaggV1Sdk::Order
314
+
315
+ extend MundipaggV1Sdk
316
+
317
+ def self.create(order)
318
+ order = {} if order == nil
319
+ postRequest(order.to_json, "/orders")
320
+ end
321
+
322
+ def self.retrieve(order_id)
323
+ ArgumentError.new("Order id should be a String") if order_id == nil
324
+ getRequest("/orders/#{order_id}")
325
+ end
326
+
327
+ def self.list(customer_id = nil, page = nil, size = nil)
328
+ query = []
329
+ query << "customer_id=#{customer_id}" if !customer_id.nil?
330
+ query << "page=#{page}" if !page.nil?
331
+ query << "size=#{size}" if !size.nil?
332
+ query.first.prepend("?") if !query.empty?
333
+ getRequest("/orders#{query.join("&")}")
334
+ end
335
+
336
+ def self.include_charge(params)
337
+ params = {} if params == nil
338
+ postRequest(params.to_json, "/charges")
339
+ end
340
+
341
+ end
342
+
343
+ class MundipaggV1Sdk::OrderItem
344
+
345
+ extend MundipaggV1Sdk
346
+
347
+ def self.include_in_order(order_id, order_item)
348
+ ArgumentError.new("Order id should be a String") if order_id == nil
349
+ order_item = {} if order_item == nil
350
+ postRequest(order_item.to_json, "/orders/#{order_id}/items")
351
+ end
352
+
353
+ def self.edit(order_id, order_item_id, order_item)
354
+ ArgumentError.new("Order id should be a String") if order_id == nil
355
+ ArgumentError.new("Order Item id should be a String") if order_item_id == nil
356
+ order_item = {} if order_item == nil
357
+ patchRequest(order_item.to_json, "/orders/#{order_id}/items/#{order_item}")
358
+ end
359
+
360
+ def self.delete(order_id, order_item_id)
361
+ ArgumentError.new("Order id should be a String") if order_id == nil
362
+ ArgumentError.new("Order Item id should be a String") if order_item_id == nil
363
+ deleteRequest("/orders/#{order_id}/items/#{order_item}")
364
+ end
365
+
366
+ def self.delete_all_from_order(order_id)
367
+ ArgumentError.new("Order id should be a String") if order_id == nil
368
+ deleteRequest("/orders/#{order_id}/items/")
369
+ end
370
+
371
+ end
372
+
373
+ class MundipaggV1Sdk::Address
374
+
375
+ extend MundipaggV1Sdk
376
+
377
+ def self.create(address)
378
+ address = {} if address == nil
379
+ postRequest(address.to_json, "/addresses")
380
+ end
381
+
382
+ def self.retrieve(customer_id, address_id)
383
+ ArgumentError.new("Customer id should be a String") if customer == nil
384
+ ArgumentError.new("Address id should be a String") if address_id == nil
385
+ getRequest("/customers/#{customer_id}/addresses/#{address_id}")
386
+ end
387
+
388
+ def self.edit(customer_id, address_id, address)
389
+ ArgumentError.new("Customer id should be a String") if customer == nil
390
+ ArgumentError.new("Address id should be a String") if address_id == nil
391
+ address = {} if address == nil
392
+ putRequest(address.to_json, "/customers/#{customer_id}/addresses/#{address_id}")
393
+ end
394
+
395
+ def self.delete(customer_id, address_id, address)
396
+ ArgumentError.new("Customer id should be a String") if customer == nil
397
+ ArgumentError.new("Address id should be a String") if address_id == nil
398
+ deleteRequest("/customers/#{customer_id}/addresses/#{address_id}")
399
+ end
400
+
401
+ def self.list(customer_id = nil, page = nil, size = nil)
402
+ query = []
403
+ query << "page=#{page}" if !page.nil?
404
+ query << "size=#{size}" if !size.nil?
405
+ query.first.prepend("?") if !query.empty?
406
+ getRequest("/customers/#{customer_id}/addresses#{query.join("&")}")
407
+ end
408
+
409
+ end
410
+
411
+ class MundipaggV1Sdk::Subscription
412
+
413
+ extend MundipaggV1Sdk
414
+
415
+ def self.create(subscription)
416
+ subscription = {} if subscription nil
417
+ postRequest(subscription.to_json, "/subscriptions")
418
+ end
419
+
420
+ def self.create_from_plan(subscription)
421
+ ArgumentError.new("Plan id should be a String") if subscription["plan_id"] == nil
422
+ subscription = {} if subscription nil
423
+ postRequest(subscription.to_json, "/subscriptions")
424
+ end
425
+
426
+ def self.retrieve(subscription_id)
427
+ ArgumentError.new("Subscription id should be a String") if subscription_id == nil
428
+ getRequest("/subscriptions/#{subscription_id}")
429
+ end
430
+
431
+ def self.cancel(subscription_id)
432
+ ArgumentError.new("Subscription id should be a String") if subscription_id == nil
433
+ deleteRequest("/subscriptions/#{subscription_id}")
434
+ end
435
+
436
+ def self.list(customer_id = nil, plan_id = nil, credit_card_id = nil, status = nil, next_billing_at = nil, since = nil, until_ = nil, page = nil, size = nil)
437
+ query = []
438
+ query << "customer_id=#{customer_id}" if !customer_id.nil?
439
+ query << "plan_id=#{plan_id}" if !plan_id.nil?
440
+ query << "credit_card_id=#{credit_card_id}" if !credit_card_id.nil?
441
+ query << "status=#{status}" if !status.nil?
442
+ query << "next_billing_at=#{next_billing_at}" if !next_billing_at.nil?
443
+ query << "since=#{since}" if !since.nil?
444
+ query << "until=#{until_}" if !until_.nil?
445
+ query << "page=#{page}" if !page.nil?
446
+ query << "size=#{size}" if !size.nil?
447
+ query.first.prepend("?") if !query.empty?
448
+ getRequest("/subscriptions#{query.join("&")}")
449
+ end
450
+
451
+ def self.edit_credit_card(subscription_id, params)
452
+ ArgumentError.new("Subscription id should be a String") if subscription_id == nil
453
+ params = {} if params nil
454
+ patchRequest(params.to_json, "subscriptions/#{subscription_id}/credit-card")
455
+ end
456
+
457
+ def self.edit_payment_method
458
+ # PATCH
459
+ end
460
+
461
+ def edit_billing_date
462
+ # PATCH
463
+ end
464
+
465
+ end
466
+
467
+ class MundipaggV1Sdk::SubscriptionItem
468
+
469
+ extend MundipaggV1Sdk
470
+
471
+ def self.include
472
+ # POST
473
+ end
474
+
475
+ def self.edit
476
+ # PUT
477
+ end
478
+
479
+ def self.remove
480
+ # DELETE
481
+ end
482
+
483
+ end
484
+
485
+ class MundipaggV1Sdk::SubscriptionItemUsage
486
+
487
+ extend MundipaggV1Sdk
488
+
489
+ def self.include
490
+ # POST
491
+ end
492
+
493
+ def self.remove
494
+ # DELETE
495
+ end
496
+
497
+ def self.list
498
+ # GET
499
+ end
500
+
501
+ end
502
+
503
+ class MundipaggV1Sdk::SubscriptionDiscount
504
+
505
+ extend MundipaggV1Sdk
506
+
507
+ def self.include_in_subscription
508
+ # POST
509
+ end
510
+
511
+ def self.remove_from_subscription
512
+ # DELETE
513
+ end
514
+
515
+ end
516
+
517
+ class MundipaggV1Sdk::Invoice
518
+
519
+ extend MundipaggV1Sdk
520
+
521
+ def self.create(subscription_id, cycle_id)
522
+ ArgumentError.new("Subscription id should be a String") if subscription_id == nil
523
+ ArgumentError.new("Cycle id should be a String") if cycle_id == nil
524
+ invoice = {}
525
+ postRequest(invoice.to_json, "/subscriptions/#{subscription_id}/cycles/#{cycle_id}/pay")
526
+ end
527
+
528
+ def self.cancel
529
+ # DELETE
530
+ end
531
+
532
+ def self.list
533
+ # GET
534
+ end
535
+
536
+ def self.retrieve
537
+ # GET
538
+ end
539
+
540
+ end
541
+
542
+ class MundipaggV1Sdk::Token
543
+
544
+ extend MundipaggV1Sdk
545
+
546
+ def self.create(token)
547
+ token = {} if token nil
548
+ postRequest(token.to_json, "/tokens")
549
+ end
550
+
551
+ end
552
+
553
+ class MundipaggV1Sdk::Webhook
554
+
555
+ extend MundipaggV1Sdk
556
+
557
+ def self.create(hook_id)
558
+ ArgumentError.new("Webhook id should be a String") if hook_id == nil
559
+ hook = {}
560
+ postRequest(hook.to_json, "/tokens")
561
+ end
562
+
563
+ def self.retrieve
564
+ # GET
565
+ end
566
+
567
+ def self.list
568
+ # GET
569
+ end
570
+
571
+ end
572
+
573
+ class MundipaggV1Sdk::AuthenticationError
574
+ end
@@ -0,0 +1,289 @@
1
+ require 'spec_helper'
2
+
3
+ describe MundipaggV1Sdk do
4
+
5
+ let(:wrong_customer) do
6
+ {
7
+ email: "user@example.com"
8
+ }
9
+ end
10
+
11
+ let(:customer) do
12
+ {
13
+ "name": "Luke Skywalker",
14
+ "email": "lskywalkder@r2d2.com",
15
+ "phones": {
16
+ "home_phone": {
17
+ "country_code": "55",
18
+ "number": "000000000",
19
+ "area_code": "021"
20
+ }
21
+ },
22
+ "document": "26224451990",
23
+ "type": "individual",
24
+ "birthdate": "2000-09-09",
25
+ "metadata": {
26
+ "id": "my_customer_id"
27
+ }
28
+ }
29
+ end
30
+
31
+ let(:wrong_card) do
32
+ {
33
+ email: "user@example.com"
34
+ }
35
+ end
36
+
37
+ let(:card) do
38
+ {
39
+ "number": "4716020721549330",
40
+ "holder_name": "Tony Stark",
41
+ "exp_month": 1,
42
+ "exp_year": 18,
43
+ "cvv": "331",
44
+ "billing_address": {
45
+ "street": "Malibu Point",
46
+ "number": "10880",
47
+ "zip_code": "90265",
48
+ "neighborhood": "Central Malibu",
49
+ "city": "Malibu",
50
+ "state": "CA",
51
+ "country": "US"
52
+ },
53
+ "options": {
54
+ "verify_card": true
55
+ }
56
+ }
57
+ end
58
+
59
+ describe "MundipaggV1Sdk::Customer" do
60
+
61
+ before do
62
+ @created_customer = MundipaggV1Sdk::Customer.create( customer )
63
+ @listed_customers = MundipaggV1Sdk::Customer.list
64
+ @retrieved_customer = MundipaggV1Sdk::Customer.retrieve( @created_customer["id"] )
65
+ end
66
+
67
+ describe "#create" do
68
+
69
+ context "Failing creation" do
70
+
71
+ it "should not create Customer" do
72
+ expect{ MundipaggV1Sdk::Customer.create(nil) }.to raise_error(Exception)
73
+ end
74
+
75
+ it "should not create Customer" do
76
+ expect{ MundipaggV1Sdk::Customer.create(wrong_customer) }.to raise_error(Exception)
77
+ end
78
+
79
+ end
80
+
81
+ context "Successful creation" do
82
+
83
+ subject { @created_customer }
84
+
85
+ it "should exist a created customer" do
86
+ expect( subject != nil && subject["id"] != nil ).to eq(true)
87
+ end
88
+
89
+ end
90
+
91
+ end
92
+
93
+ describe "#list" do
94
+
95
+ context "Successful listing" do
96
+
97
+ subject { @listed_customers }
98
+
99
+ it "should exist a list of Customers" do
100
+ expect( subject != nil && subject.length > 0 && subject.include?( @created_customer ) ).to eq(true)
101
+ end
102
+
103
+ end
104
+
105
+ end
106
+
107
+ describe "#retrieve" do
108
+
109
+ context "Successful retrieval" do
110
+
111
+ subject { @retrieved_customer }
112
+
113
+ it "should exist a retrieved Customer" do
114
+ expect( subject != nil && subject["email"] == customer[:email] ).to eq(true)
115
+ end
116
+
117
+ end
118
+
119
+ end
120
+
121
+ end
122
+
123
+ describe "MundipaggV1Sdk::Card" do
124
+
125
+ before do
126
+ @created_customer = MundipaggV1Sdk::Customer.create( customer )
127
+ @created_card = MundipaggV1Sdk::Card.create(@created_customer["id"], card)
128
+ @retrieved_card = MundipaggV1Sdk::Card.retrieve(@created_customer["id"], @created_card["id"])
129
+ @listed_cards = MundipaggV1Sdk::Card.list(@created_customer["id"])
130
+ @deleted_cards = []
131
+ @listed_cards.each do |c|
132
+ @deleted_cards << MundipaggV1Sdk::Card.delete(@created_customer["id"], c["id"])
133
+ end
134
+ end
135
+
136
+ describe "#create" do
137
+
138
+ context "Failing creation" do
139
+
140
+ it "should not create Card" do
141
+ expect{ MundipaggV1Sdk::Card.create(nil, nil) }.to raise_error(Exception)
142
+ end
143
+
144
+ it "should not create Card" do
145
+ expect{ MundipaggV1Sdk::Card.create(nil, wrong_card) }.to raise_error(Exception)
146
+ end
147
+
148
+ it "should not create Card" do
149
+ expect{ MundipaggV1Sdk::Card.create("", wrong_card) }.to raise_error(Exception)
150
+ end
151
+
152
+ it "should not create Card" do
153
+ expect{ MundipaggV1Sdk::Card.create("", wrong_card) }.to raise_error(Exception)
154
+ end
155
+
156
+ end
157
+
158
+ context "Successful creation" do
159
+
160
+ subject { @created_card }
161
+
162
+ it "should exist a created Card" do
163
+ expect( subject != nil && subject["id"] != nil ).to eq(true)
164
+ end
165
+
166
+ end
167
+
168
+ end
169
+
170
+ describe "#retrieve" do
171
+
172
+ context "Failing retrieval" do
173
+
174
+ end
175
+
176
+ context "Successful retrieval" do
177
+
178
+ subject { @retrieved_card }
179
+
180
+ it "should exist a retrieved Card" do
181
+ expect( subject != nil && subject["id"] != nil ).to eq(true)
182
+ end
183
+
184
+ end
185
+
186
+ end
187
+
188
+ describe "#list" do
189
+
190
+ context "Successful listing" do
191
+
192
+ subject { @listed_cards }
193
+
194
+ it "should exist a list of customer Cards" do
195
+ expect( subject ).to_not be_nil
196
+ end
197
+
198
+ end
199
+
200
+ end
201
+
202
+ describe "#delete" do
203
+
204
+ context "Successful deletion" do
205
+
206
+ subject { @deleted_cards }
207
+
208
+ it "all cards should be deleted" do
209
+ expect( subject ).to all( satisfy{ |c| c["status"] == "deleted" } )
210
+ end
211
+
212
+ end
213
+
214
+ end
215
+
216
+ end
217
+
218
+ describe "MundipaggV1Sdk::Charge" do
219
+
220
+ before do
221
+ @listed_charges = MundipaggV1Sdk::Charge.list("123")
222
+ end
223
+
224
+ describe "#list" do
225
+
226
+ context "Successful listing" do
227
+
228
+ subject { @listed_charges }
229
+
230
+ it "should exist a list of Charges" do
231
+ expect( !subject.nil? && subject.length > 0 ).to_not be_nil
232
+ end
233
+
234
+ end
235
+
236
+ end
237
+
238
+ end
239
+
240
+ describe "MundipaggV1Sdk::Token" do
241
+
242
+ before do
243
+ @created_customer = MundipaggV1Sdk::Customer.create( customer )
244
+ @created_card = MundipaggV1Sdk::Card.create(@created_customer["id"], card)
245
+ @retrieved_card = MundipaggV1Sdk::Card.retrieve(@created_customer["id"], @created_card["id"])
246
+ @listed_cards = MundipaggV1Sdk::Card.list(@created_customer["id"])
247
+ @deleted_cards = []
248
+ @listed_cards.each do |c|
249
+ @deleted_cards << MundipaggV1Sdk::Card.delete(@created_customer["id"], c["id"])
250
+ end
251
+ end
252
+
253
+ describe "#create" do
254
+
255
+ context "Failing creation" do
256
+
257
+ it "should not create Card" do
258
+ expect{ MundipaggV1Sdk::Card.create(nil, nil) }.to raise_error(Exception)
259
+ end
260
+
261
+ it "should not create Card" do
262
+ expect{ MundipaggV1Sdk::Card.create(nil, wrong_card) }.to raise_error(Exception)
263
+ end
264
+
265
+ it "should not create Card" do
266
+ expect{ MundipaggV1Sdk::Card.create("", wrong_card) }.to raise_error(Exception)
267
+ end
268
+
269
+ it "should not create Card" do
270
+ expect{ MundipaggV1Sdk::Card.create("", wrong_card) }.to raise_error(Exception)
271
+ end
272
+
273
+ end
274
+
275
+ context "Successful creation" do
276
+
277
+ subject { @created_card }
278
+
279
+ it "should exist a created Card" do
280
+ expect( subject != nil && subject["id"] != nil ).to eq(true)
281
+ end
282
+
283
+ end
284
+
285
+ end
286
+
287
+ end
288
+
289
+ end
metadata ADDED
@@ -0,0 +1,117 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mundipagg_v1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Marmotex
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-05-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rest-client
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: New mundipagg api
84
+ email: admin@marmotex.com
85
+ executables: []
86
+ extensions: []
87
+ extra_rdoc_files: []
88
+ files:
89
+ - lib/gateway/customer.rb
90
+ - lib/mundipagg_v1_sdk.rb
91
+ - spec/mundipagg_v1_sdk_spec.rb
92
+ homepage: http://rubygems.org/gems/mundipagg_v1
93
+ licenses:
94
+ - MIT
95
+ metadata: {}
96
+ post_install_message:
97
+ rdoc_options: []
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ requirements: []
111
+ rubyforge_project:
112
+ rubygems_version: 2.6.12
113
+ signing_key:
114
+ specification_version: 4
115
+ summary: New mundipagg api
116
+ test_files:
117
+ - spec/mundipagg_v1_sdk_spec.rb