processout 2.20.0 → 2.21.0

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 +4 -4
  2. data/.gitignore +52 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Dockerfile +7 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/Makefile +4 -0
  9. data/README.md +12 -0
  10. data/Rakefile +6 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/lib/processout/activity.rb +206 -0
  14. data/lib/processout/addon.rb +401 -0
  15. data/lib/processout/alternative_merchant_certificate.rb +115 -0
  16. data/lib/processout/api_request.rb +295 -0
  17. data/lib/processout/api_version.rb +92 -0
  18. data/lib/processout/apple_pay_alternative_merchant_certificates.rb +121 -0
  19. data/lib/processout/balance.rb +92 -0
  20. data/lib/processout/balances.rb +111 -0
  21. data/lib/processout/card.rb +503 -0
  22. data/lib/processout/card_information.rb +164 -0
  23. data/lib/processout/coupon.rb +352 -0
  24. data/lib/processout/customer.rb +755 -0
  25. data/lib/processout/customer_action.rb +81 -0
  26. data/lib/processout/discount.rb +360 -0
  27. data/lib/processout/dunning_action.rb +81 -0
  28. data/lib/processout/errors/authentication_error.rb +9 -0
  29. data/lib/processout/errors/generic_error.rb +9 -0
  30. data/lib/processout/errors/internal_error.rb +9 -0
  31. data/lib/processout/errors/notfound_error.rb +9 -0
  32. data/lib/processout/errors/validation_error.rb +9 -0
  33. data/lib/processout/event.rb +237 -0
  34. data/lib/processout/gateway.rb +210 -0
  35. data/lib/processout/gateway_configuration.rb +346 -0
  36. data/lib/processout/gateway_request.rb +26 -0
  37. data/lib/processout/invoice.rb +984 -0
  38. data/lib/processout/invoice_detail.rb +235 -0
  39. data/lib/processout/invoice_device.rb +92 -0
  40. data/lib/processout/invoice_external_fraud_tools.rb +70 -0
  41. data/lib/processout/invoice_risk.rb +81 -0
  42. data/lib/processout/invoice_shipping.rb +202 -0
  43. data/lib/processout/invoice_tax.rb +81 -0
  44. data/lib/processout/networking/request.rb +102 -0
  45. data/lib/processout/networking/response.rb +67 -0
  46. data/lib/processout/payment_data_network_authentication.rb +70 -0
  47. data/lib/processout/payment_data_three_ds_authentication.rb +70 -0
  48. data/lib/processout/payment_data_three_ds_request.rb +103 -0
  49. data/lib/processout/payout.rb +379 -0
  50. data/lib/processout/payout_item.rb +238 -0
  51. data/lib/processout/plan.rb +368 -0
  52. data/lib/processout/product.rb +368 -0
  53. data/lib/processout/project.rb +353 -0
  54. data/lib/processout/refund.rb +277 -0
  55. data/lib/processout/subscription.rb +910 -0
  56. data/lib/processout/three_ds.rb +158 -0
  57. data/lib/processout/token.rb +493 -0
  58. data/lib/processout/transaction.rb +905 -0
  59. data/lib/processout/transaction_operation.rb +418 -0
  60. data/lib/processout/version.rb +3 -0
  61. data/lib/processout/webhook.rb +237 -0
  62. data/lib/processout/webhook_endpoint.rb +149 -0
  63. data/lib/processout.rb +263 -0
  64. data/processout.gemspec +26 -0
  65. metadata +66 -3
@@ -0,0 +1,905 @@
1
+ # The content of this file was automatically generated
2
+
3
+ require "cgi"
4
+ require "json"
5
+ require "processout/networking/request"
6
+ require "processout/networking/response"
7
+
8
+ module ProcessOut
9
+ class Transaction
10
+
11
+ attr_reader :id
12
+ attr_reader :project
13
+ attr_reader :project_id
14
+ attr_reader :invoice
15
+ attr_reader :invoice_id
16
+ attr_reader :customer
17
+ attr_reader :customer_id
18
+ attr_reader :subscription
19
+ attr_reader :subscription_id
20
+ attr_reader :token
21
+ attr_reader :token_id
22
+ attr_reader :card
23
+ attr_reader :card_id
24
+ attr_reader :gateway_configuration
25
+ attr_reader :gateway_configuration_id
26
+ attr_reader :operations
27
+ attr_reader :refunds
28
+ attr_reader :name
29
+ attr_reader :amount
30
+ attr_reader :amount_local
31
+ attr_reader :authorized_amount
32
+ attr_reader :authorized_amount_local
33
+ attr_reader :captured_amount
34
+ attr_reader :captured_amount_local
35
+ attr_reader :refunded_amount
36
+ attr_reader :refunded_amount_local
37
+ attr_reader :available_amount
38
+ attr_reader :available_amount_local
39
+ attr_reader :currency
40
+ attr_reader :error_code
41
+ attr_reader :error_message
42
+ attr_reader :acquirer_name
43
+ attr_reader :gateway_name
44
+ attr_reader :three_d_s_status
45
+ attr_reader :status
46
+ attr_reader :authorized
47
+ attr_reader :captured
48
+ attr_reader :voided
49
+ attr_reader :refunded
50
+ attr_reader :chargedback
51
+ attr_reader :received_fraud_notification
52
+ attr_reader :received_retrieval_request
53
+ attr_reader :processout_fee
54
+ attr_reader :estimated_fee
55
+ attr_reader :gateway_fee
56
+ attr_reader :gateway_fee_local
57
+ attr_reader :currency_fee
58
+ attr_reader :metadata
59
+ attr_reader :sandbox
60
+ attr_reader :created_at
61
+ attr_reader :chargedback_at
62
+ attr_reader :refunded_at
63
+ attr_reader :three_d_s
64
+ attr_reader :cvc_check
65
+ attr_reader :avs_check
66
+
67
+
68
+ def id=(val)
69
+ @id = val
70
+ end
71
+
72
+ def project=(val)
73
+ if val.nil?
74
+ @project = val
75
+ return
76
+ end
77
+
78
+ if val.instance_of? Project
79
+ @project = val
80
+ else
81
+ obj = Project.new(@client)
82
+ obj.fill_with_data(val)
83
+ @project = obj
84
+ end
85
+
86
+ end
87
+
88
+ def project_id=(val)
89
+ @project_id = val
90
+ end
91
+
92
+ def invoice=(val)
93
+ if val.nil?
94
+ @invoice = val
95
+ return
96
+ end
97
+
98
+ if val.instance_of? Invoice
99
+ @invoice = val
100
+ else
101
+ obj = Invoice.new(@client)
102
+ obj.fill_with_data(val)
103
+ @invoice = obj
104
+ end
105
+
106
+ end
107
+
108
+ def invoice_id=(val)
109
+ @invoice_id = val
110
+ end
111
+
112
+ def customer=(val)
113
+ if val.nil?
114
+ @customer = val
115
+ return
116
+ end
117
+
118
+ if val.instance_of? Customer
119
+ @customer = val
120
+ else
121
+ obj = Customer.new(@client)
122
+ obj.fill_with_data(val)
123
+ @customer = obj
124
+ end
125
+
126
+ end
127
+
128
+ def customer_id=(val)
129
+ @customer_id = val
130
+ end
131
+
132
+ def subscription=(val)
133
+ if val.nil?
134
+ @subscription = val
135
+ return
136
+ end
137
+
138
+ if val.instance_of? Subscription
139
+ @subscription = val
140
+ else
141
+ obj = Subscription.new(@client)
142
+ obj.fill_with_data(val)
143
+ @subscription = obj
144
+ end
145
+
146
+ end
147
+
148
+ def subscription_id=(val)
149
+ @subscription_id = val
150
+ end
151
+
152
+ def token=(val)
153
+ if val.nil?
154
+ @token = val
155
+ return
156
+ end
157
+
158
+ if val.instance_of? Token
159
+ @token = val
160
+ else
161
+ obj = Token.new(@client)
162
+ obj.fill_with_data(val)
163
+ @token = obj
164
+ end
165
+
166
+ end
167
+
168
+ def token_id=(val)
169
+ @token_id = val
170
+ end
171
+
172
+ def card=(val)
173
+ if val.nil?
174
+ @card = val
175
+ return
176
+ end
177
+
178
+ if val.instance_of? Card
179
+ @card = val
180
+ else
181
+ obj = Card.new(@client)
182
+ obj.fill_with_data(val)
183
+ @card = obj
184
+ end
185
+
186
+ end
187
+
188
+ def card_id=(val)
189
+ @card_id = val
190
+ end
191
+
192
+ def gateway_configuration=(val)
193
+ if val.nil?
194
+ @gateway_configuration = val
195
+ return
196
+ end
197
+
198
+ if val.instance_of? GatewayConfiguration
199
+ @gateway_configuration = val
200
+ else
201
+ obj = GatewayConfiguration.new(@client)
202
+ obj.fill_with_data(val)
203
+ @gateway_configuration = obj
204
+ end
205
+
206
+ end
207
+
208
+ def gateway_configuration_id=(val)
209
+ @gateway_configuration_id = val
210
+ end
211
+
212
+ def operations=(val)
213
+ if val.nil?
214
+ @operations = []
215
+ return
216
+ end
217
+
218
+ if val.length > 0 and val[0].instance_of? TransactionOperation
219
+ @operations = val
220
+ else
221
+ l = Array.new
222
+ for v in val
223
+ obj = TransactionOperation.new(@client)
224
+ obj.fill_with_data(v)
225
+ l.push(obj)
226
+ end
227
+ @operations = l
228
+ end
229
+
230
+ end
231
+
232
+ def refunds=(val)
233
+ if val.nil?
234
+ @refunds = []
235
+ return
236
+ end
237
+
238
+ if val.length > 0 and val[0].instance_of? Refund
239
+ @refunds = val
240
+ else
241
+ l = Array.new
242
+ for v in val
243
+ obj = Refund.new(@client)
244
+ obj.fill_with_data(v)
245
+ l.push(obj)
246
+ end
247
+ @refunds = l
248
+ end
249
+
250
+ end
251
+
252
+ def name=(val)
253
+ @name = val
254
+ end
255
+
256
+ def amount=(val)
257
+ @amount = val
258
+ end
259
+
260
+ def amount_local=(val)
261
+ @amount_local = val
262
+ end
263
+
264
+ def authorized_amount=(val)
265
+ @authorized_amount = val
266
+ end
267
+
268
+ def authorized_amount_local=(val)
269
+ @authorized_amount_local = val
270
+ end
271
+
272
+ def captured_amount=(val)
273
+ @captured_amount = val
274
+ end
275
+
276
+ def captured_amount_local=(val)
277
+ @captured_amount_local = val
278
+ end
279
+
280
+ def refunded_amount=(val)
281
+ @refunded_amount = val
282
+ end
283
+
284
+ def refunded_amount_local=(val)
285
+ @refunded_amount_local = val
286
+ end
287
+
288
+ def available_amount=(val)
289
+ @available_amount = val
290
+ end
291
+
292
+ def available_amount_local=(val)
293
+ @available_amount_local = val
294
+ end
295
+
296
+ def currency=(val)
297
+ @currency = val
298
+ end
299
+
300
+ def error_code=(val)
301
+ @error_code = val
302
+ end
303
+
304
+ def error_message=(val)
305
+ @error_message = val
306
+ end
307
+
308
+ def acquirer_name=(val)
309
+ @acquirer_name = val
310
+ end
311
+
312
+ def gateway_name=(val)
313
+ @gateway_name = val
314
+ end
315
+
316
+ def three_d_s_status=(val)
317
+ @three_d_s_status = val
318
+ end
319
+
320
+ def status=(val)
321
+ @status = val
322
+ end
323
+
324
+ def authorized=(val)
325
+ @authorized = val
326
+ end
327
+
328
+ def captured=(val)
329
+ @captured = val
330
+ end
331
+
332
+ def voided=(val)
333
+ @voided = val
334
+ end
335
+
336
+ def refunded=(val)
337
+ @refunded = val
338
+ end
339
+
340
+ def chargedback=(val)
341
+ @chargedback = val
342
+ end
343
+
344
+ def received_fraud_notification=(val)
345
+ @received_fraud_notification = val
346
+ end
347
+
348
+ def received_retrieval_request=(val)
349
+ @received_retrieval_request = val
350
+ end
351
+
352
+ def processout_fee=(val)
353
+ @processout_fee = val
354
+ end
355
+
356
+ def estimated_fee=(val)
357
+ @estimated_fee = val
358
+ end
359
+
360
+ def gateway_fee=(val)
361
+ @gateway_fee = val
362
+ end
363
+
364
+ def gateway_fee_local=(val)
365
+ @gateway_fee_local = val
366
+ end
367
+
368
+ def currency_fee=(val)
369
+ @currency_fee = val
370
+ end
371
+
372
+ def metadata=(val)
373
+ @metadata = val
374
+ end
375
+
376
+ def sandbox=(val)
377
+ @sandbox = val
378
+ end
379
+
380
+ def created_at=(val)
381
+ @created_at = val
382
+ end
383
+
384
+ def chargedback_at=(val)
385
+ @chargedback_at = val
386
+ end
387
+
388
+ def refunded_at=(val)
389
+ @refunded_at = val
390
+ end
391
+
392
+ def three_d_s=(val)
393
+ if val.nil?
394
+ @three_d_s = val
395
+ return
396
+ end
397
+
398
+ if val.instance_of? ThreeDS
399
+ @three_d_s = val
400
+ else
401
+ obj = ThreeDS.new(@client)
402
+ obj.fill_with_data(val)
403
+ @three_d_s = obj
404
+ end
405
+
406
+ end
407
+
408
+ def cvc_check=(val)
409
+ @cvc_check = val
410
+ end
411
+
412
+ def avs_check=(val)
413
+ @avs_check = val
414
+ end
415
+
416
+
417
+ # Initializes the Transaction object
418
+ # Params:
419
+ # +client+:: +ProcessOut+ client instance
420
+ # +data+:: data that can be used to fill the object
421
+ def initialize(client, data = {})
422
+ @client = client
423
+
424
+ self.id = data.fetch(:id, nil)
425
+ self.project = data.fetch(:project, nil)
426
+ self.project_id = data.fetch(:project_id, nil)
427
+ self.invoice = data.fetch(:invoice, nil)
428
+ self.invoice_id = data.fetch(:invoice_id, nil)
429
+ self.customer = data.fetch(:customer, nil)
430
+ self.customer_id = data.fetch(:customer_id, nil)
431
+ self.subscription = data.fetch(:subscription, nil)
432
+ self.subscription_id = data.fetch(:subscription_id, nil)
433
+ self.token = data.fetch(:token, nil)
434
+ self.token_id = data.fetch(:token_id, nil)
435
+ self.card = data.fetch(:card, nil)
436
+ self.card_id = data.fetch(:card_id, nil)
437
+ self.gateway_configuration = data.fetch(:gateway_configuration, nil)
438
+ self.gateway_configuration_id = data.fetch(:gateway_configuration_id, nil)
439
+ self.operations = data.fetch(:operations, nil)
440
+ self.refunds = data.fetch(:refunds, nil)
441
+ self.name = data.fetch(:name, nil)
442
+ self.amount = data.fetch(:amount, nil)
443
+ self.amount_local = data.fetch(:amount_local, nil)
444
+ self.authorized_amount = data.fetch(:authorized_amount, nil)
445
+ self.authorized_amount_local = data.fetch(:authorized_amount_local, nil)
446
+ self.captured_amount = data.fetch(:captured_amount, nil)
447
+ self.captured_amount_local = data.fetch(:captured_amount_local, nil)
448
+ self.refunded_amount = data.fetch(:refunded_amount, nil)
449
+ self.refunded_amount_local = data.fetch(:refunded_amount_local, nil)
450
+ self.available_amount = data.fetch(:available_amount, nil)
451
+ self.available_amount_local = data.fetch(:available_amount_local, nil)
452
+ self.currency = data.fetch(:currency, nil)
453
+ self.error_code = data.fetch(:error_code, nil)
454
+ self.error_message = data.fetch(:error_message, nil)
455
+ self.acquirer_name = data.fetch(:acquirer_name, nil)
456
+ self.gateway_name = data.fetch(:gateway_name, nil)
457
+ self.three_d_s_status = data.fetch(:three_d_s_status, nil)
458
+ self.status = data.fetch(:status, nil)
459
+ self.authorized = data.fetch(:authorized, nil)
460
+ self.captured = data.fetch(:captured, nil)
461
+ self.voided = data.fetch(:voided, nil)
462
+ self.refunded = data.fetch(:refunded, nil)
463
+ self.chargedback = data.fetch(:chargedback, nil)
464
+ self.received_fraud_notification = data.fetch(:received_fraud_notification, nil)
465
+ self.received_retrieval_request = data.fetch(:received_retrieval_request, nil)
466
+ self.processout_fee = data.fetch(:processout_fee, nil)
467
+ self.estimated_fee = data.fetch(:estimated_fee, nil)
468
+ self.gateway_fee = data.fetch(:gateway_fee, nil)
469
+ self.gateway_fee_local = data.fetch(:gateway_fee_local, nil)
470
+ self.currency_fee = data.fetch(:currency_fee, nil)
471
+ self.metadata = data.fetch(:metadata, nil)
472
+ self.sandbox = data.fetch(:sandbox, nil)
473
+ self.created_at = data.fetch(:created_at, nil)
474
+ self.chargedback_at = data.fetch(:chargedback_at, nil)
475
+ self.refunded_at = data.fetch(:refunded_at, nil)
476
+ self.three_d_s = data.fetch(:three_d_s, nil)
477
+ self.cvc_check = data.fetch(:cvc_check, nil)
478
+ self.avs_check = data.fetch(:avs_check, nil)
479
+
480
+ end
481
+
482
+ # Create a new Transaction using the current client
483
+ def new(data = {})
484
+ Transaction.new(@client, data)
485
+ end
486
+
487
+ # Overrides the JSON marshaller to only send the fields we want
488
+ def to_json(options)
489
+ {
490
+ "id": self.id,
491
+ "project": self.project,
492
+ "project_id": self.project_id,
493
+ "invoice": self.invoice,
494
+ "invoice_id": self.invoice_id,
495
+ "customer": self.customer,
496
+ "customer_id": self.customer_id,
497
+ "subscription": self.subscription,
498
+ "subscription_id": self.subscription_id,
499
+ "token": self.token,
500
+ "token_id": self.token_id,
501
+ "card": self.card,
502
+ "card_id": self.card_id,
503
+ "gateway_configuration": self.gateway_configuration,
504
+ "gateway_configuration_id": self.gateway_configuration_id,
505
+ "operations": self.operations,
506
+ "refunds": self.refunds,
507
+ "name": self.name,
508
+ "amount": self.amount,
509
+ "amount_local": self.amount_local,
510
+ "authorized_amount": self.authorized_amount,
511
+ "authorized_amount_local": self.authorized_amount_local,
512
+ "captured_amount": self.captured_amount,
513
+ "captured_amount_local": self.captured_amount_local,
514
+ "refunded_amount": self.refunded_amount,
515
+ "refunded_amount_local": self.refunded_amount_local,
516
+ "available_amount": self.available_amount,
517
+ "available_amount_local": self.available_amount_local,
518
+ "currency": self.currency,
519
+ "error_code": self.error_code,
520
+ "error_message": self.error_message,
521
+ "acquirer_name": self.acquirer_name,
522
+ "gateway_name": self.gateway_name,
523
+ "three_d_s_status": self.three_d_s_status,
524
+ "status": self.status,
525
+ "authorized": self.authorized,
526
+ "captured": self.captured,
527
+ "voided": self.voided,
528
+ "refunded": self.refunded,
529
+ "chargedback": self.chargedback,
530
+ "received_fraud_notification": self.received_fraud_notification,
531
+ "received_retrieval_request": self.received_retrieval_request,
532
+ "processout_fee": self.processout_fee,
533
+ "estimated_fee": self.estimated_fee,
534
+ "gateway_fee": self.gateway_fee,
535
+ "gateway_fee_local": self.gateway_fee_local,
536
+ "currency_fee": self.currency_fee,
537
+ "metadata": self.metadata,
538
+ "sandbox": self.sandbox,
539
+ "created_at": self.created_at,
540
+ "chargedback_at": self.chargedback_at,
541
+ "refunded_at": self.refunded_at,
542
+ "three_d_s": self.three_d_s,
543
+ "cvc_check": self.cvc_check,
544
+ "avs_check": self.avs_check,
545
+ }.to_json
546
+ end
547
+
548
+ # Fills the object with data coming from the API
549
+ # Params:
550
+ # +data+:: +Hash+ of data coming from the API
551
+ def fill_with_data(data)
552
+ if data.nil?
553
+ return self
554
+ end
555
+ if data.include? "id"
556
+ self.id = data["id"]
557
+ end
558
+ if data.include? "project"
559
+ self.project = data["project"]
560
+ end
561
+ if data.include? "project_id"
562
+ self.project_id = data["project_id"]
563
+ end
564
+ if data.include? "invoice"
565
+ self.invoice = data["invoice"]
566
+ end
567
+ if data.include? "invoice_id"
568
+ self.invoice_id = data["invoice_id"]
569
+ end
570
+ if data.include? "customer"
571
+ self.customer = data["customer"]
572
+ end
573
+ if data.include? "customer_id"
574
+ self.customer_id = data["customer_id"]
575
+ end
576
+ if data.include? "subscription"
577
+ self.subscription = data["subscription"]
578
+ end
579
+ if data.include? "subscription_id"
580
+ self.subscription_id = data["subscription_id"]
581
+ end
582
+ if data.include? "token"
583
+ self.token = data["token"]
584
+ end
585
+ if data.include? "token_id"
586
+ self.token_id = data["token_id"]
587
+ end
588
+ if data.include? "card"
589
+ self.card = data["card"]
590
+ end
591
+ if data.include? "card_id"
592
+ self.card_id = data["card_id"]
593
+ end
594
+ if data.include? "gateway_configuration"
595
+ self.gateway_configuration = data["gateway_configuration"]
596
+ end
597
+ if data.include? "gateway_configuration_id"
598
+ self.gateway_configuration_id = data["gateway_configuration_id"]
599
+ end
600
+ if data.include? "operations"
601
+ self.operations = data["operations"]
602
+ end
603
+ if data.include? "refunds"
604
+ self.refunds = data["refunds"]
605
+ end
606
+ if data.include? "name"
607
+ self.name = data["name"]
608
+ end
609
+ if data.include? "amount"
610
+ self.amount = data["amount"]
611
+ end
612
+ if data.include? "amount_local"
613
+ self.amount_local = data["amount_local"]
614
+ end
615
+ if data.include? "authorized_amount"
616
+ self.authorized_amount = data["authorized_amount"]
617
+ end
618
+ if data.include? "authorized_amount_local"
619
+ self.authorized_amount_local = data["authorized_amount_local"]
620
+ end
621
+ if data.include? "captured_amount"
622
+ self.captured_amount = data["captured_amount"]
623
+ end
624
+ if data.include? "captured_amount_local"
625
+ self.captured_amount_local = data["captured_amount_local"]
626
+ end
627
+ if data.include? "refunded_amount"
628
+ self.refunded_amount = data["refunded_amount"]
629
+ end
630
+ if data.include? "refunded_amount_local"
631
+ self.refunded_amount_local = data["refunded_amount_local"]
632
+ end
633
+ if data.include? "available_amount"
634
+ self.available_amount = data["available_amount"]
635
+ end
636
+ if data.include? "available_amount_local"
637
+ self.available_amount_local = data["available_amount_local"]
638
+ end
639
+ if data.include? "currency"
640
+ self.currency = data["currency"]
641
+ end
642
+ if data.include? "error_code"
643
+ self.error_code = data["error_code"]
644
+ end
645
+ if data.include? "error_message"
646
+ self.error_message = data["error_message"]
647
+ end
648
+ if data.include? "acquirer_name"
649
+ self.acquirer_name = data["acquirer_name"]
650
+ end
651
+ if data.include? "gateway_name"
652
+ self.gateway_name = data["gateway_name"]
653
+ end
654
+ if data.include? "three_d_s_status"
655
+ self.three_d_s_status = data["three_d_s_status"]
656
+ end
657
+ if data.include? "status"
658
+ self.status = data["status"]
659
+ end
660
+ if data.include? "authorized"
661
+ self.authorized = data["authorized"]
662
+ end
663
+ if data.include? "captured"
664
+ self.captured = data["captured"]
665
+ end
666
+ if data.include? "voided"
667
+ self.voided = data["voided"]
668
+ end
669
+ if data.include? "refunded"
670
+ self.refunded = data["refunded"]
671
+ end
672
+ if data.include? "chargedback"
673
+ self.chargedback = data["chargedback"]
674
+ end
675
+ if data.include? "received_fraud_notification"
676
+ self.received_fraud_notification = data["received_fraud_notification"]
677
+ end
678
+ if data.include? "received_retrieval_request"
679
+ self.received_retrieval_request = data["received_retrieval_request"]
680
+ end
681
+ if data.include? "processout_fee"
682
+ self.processout_fee = data["processout_fee"]
683
+ end
684
+ if data.include? "estimated_fee"
685
+ self.estimated_fee = data["estimated_fee"]
686
+ end
687
+ if data.include? "gateway_fee"
688
+ self.gateway_fee = data["gateway_fee"]
689
+ end
690
+ if data.include? "gateway_fee_local"
691
+ self.gateway_fee_local = data["gateway_fee_local"]
692
+ end
693
+ if data.include? "currency_fee"
694
+ self.currency_fee = data["currency_fee"]
695
+ end
696
+ if data.include? "metadata"
697
+ self.metadata = data["metadata"]
698
+ end
699
+ if data.include? "sandbox"
700
+ self.sandbox = data["sandbox"]
701
+ end
702
+ if data.include? "created_at"
703
+ self.created_at = data["created_at"]
704
+ end
705
+ if data.include? "chargedback_at"
706
+ self.chargedback_at = data["chargedback_at"]
707
+ end
708
+ if data.include? "refunded_at"
709
+ self.refunded_at = data["refunded_at"]
710
+ end
711
+ if data.include? "three_d_s"
712
+ self.three_d_s = data["three_d_s"]
713
+ end
714
+ if data.include? "cvc_check"
715
+ self.cvc_check = data["cvc_check"]
716
+ end
717
+ if data.include? "avs_check"
718
+ self.avs_check = data["avs_check"]
719
+ end
720
+
721
+ self
722
+ end
723
+
724
+ # Prefills the object with the data passed as parameters
725
+ # Params:
726
+ # +data+:: +Hash+ of data
727
+ def prefill(data)
728
+ if data.nil?
729
+ return self
730
+ end
731
+ self.id = data.fetch(:id, self.id)
732
+ self.project = data.fetch(:project, self.project)
733
+ self.project_id = data.fetch(:project_id, self.project_id)
734
+ self.invoice = data.fetch(:invoice, self.invoice)
735
+ self.invoice_id = data.fetch(:invoice_id, self.invoice_id)
736
+ self.customer = data.fetch(:customer, self.customer)
737
+ self.customer_id = data.fetch(:customer_id, self.customer_id)
738
+ self.subscription = data.fetch(:subscription, self.subscription)
739
+ self.subscription_id = data.fetch(:subscription_id, self.subscription_id)
740
+ self.token = data.fetch(:token, self.token)
741
+ self.token_id = data.fetch(:token_id, self.token_id)
742
+ self.card = data.fetch(:card, self.card)
743
+ self.card_id = data.fetch(:card_id, self.card_id)
744
+ self.gateway_configuration = data.fetch(:gateway_configuration, self.gateway_configuration)
745
+ self.gateway_configuration_id = data.fetch(:gateway_configuration_id, self.gateway_configuration_id)
746
+ self.operations = data.fetch(:operations, self.operations)
747
+ self.refunds = data.fetch(:refunds, self.refunds)
748
+ self.name = data.fetch(:name, self.name)
749
+ self.amount = data.fetch(:amount, self.amount)
750
+ self.amount_local = data.fetch(:amount_local, self.amount_local)
751
+ self.authorized_amount = data.fetch(:authorized_amount, self.authorized_amount)
752
+ self.authorized_amount_local = data.fetch(:authorized_amount_local, self.authorized_amount_local)
753
+ self.captured_amount = data.fetch(:captured_amount, self.captured_amount)
754
+ self.captured_amount_local = data.fetch(:captured_amount_local, self.captured_amount_local)
755
+ self.refunded_amount = data.fetch(:refunded_amount, self.refunded_amount)
756
+ self.refunded_amount_local = data.fetch(:refunded_amount_local, self.refunded_amount_local)
757
+ self.available_amount = data.fetch(:available_amount, self.available_amount)
758
+ self.available_amount_local = data.fetch(:available_amount_local, self.available_amount_local)
759
+ self.currency = data.fetch(:currency, self.currency)
760
+ self.error_code = data.fetch(:error_code, self.error_code)
761
+ self.error_message = data.fetch(:error_message, self.error_message)
762
+ self.acquirer_name = data.fetch(:acquirer_name, self.acquirer_name)
763
+ self.gateway_name = data.fetch(:gateway_name, self.gateway_name)
764
+ self.three_d_s_status = data.fetch(:three_d_s_status, self.three_d_s_status)
765
+ self.status = data.fetch(:status, self.status)
766
+ self.authorized = data.fetch(:authorized, self.authorized)
767
+ self.captured = data.fetch(:captured, self.captured)
768
+ self.voided = data.fetch(:voided, self.voided)
769
+ self.refunded = data.fetch(:refunded, self.refunded)
770
+ self.chargedback = data.fetch(:chargedback, self.chargedback)
771
+ self.received_fraud_notification = data.fetch(:received_fraud_notification, self.received_fraud_notification)
772
+ self.received_retrieval_request = data.fetch(:received_retrieval_request, self.received_retrieval_request)
773
+ self.processout_fee = data.fetch(:processout_fee, self.processout_fee)
774
+ self.estimated_fee = data.fetch(:estimated_fee, self.estimated_fee)
775
+ self.gateway_fee = data.fetch(:gateway_fee, self.gateway_fee)
776
+ self.gateway_fee_local = data.fetch(:gateway_fee_local, self.gateway_fee_local)
777
+ self.currency_fee = data.fetch(:currency_fee, self.currency_fee)
778
+ self.metadata = data.fetch(:metadata, self.metadata)
779
+ self.sandbox = data.fetch(:sandbox, self.sandbox)
780
+ self.created_at = data.fetch(:created_at, self.created_at)
781
+ self.chargedback_at = data.fetch(:chargedback_at, self.chargedback_at)
782
+ self.refunded_at = data.fetch(:refunded_at, self.refunded_at)
783
+ self.three_d_s = data.fetch(:three_d_s, self.three_d_s)
784
+ self.cvc_check = data.fetch(:cvc_check, self.cvc_check)
785
+ self.avs_check = data.fetch(:avs_check, self.avs_check)
786
+
787
+ self
788
+ end
789
+
790
+ # Get the transaction's refunds.
791
+ # Params:
792
+ # +options+:: +Hash+ of options
793
+ def fetch_refunds(options = {})
794
+ self.prefill(options)
795
+
796
+ request = Request.new(@client)
797
+ path = "/transactions/" + CGI.escape(@id) + "/refunds"
798
+ data = {
799
+
800
+ }
801
+
802
+ response = Response.new(request.get(path, data, options))
803
+ return_values = Array.new
804
+
805
+ a = Array.new
806
+ body = response.body
807
+ for v in body['refunds']
808
+ tmp = Refund.new(@client)
809
+ tmp.fill_with_data(v)
810
+ a.push(tmp)
811
+ end
812
+
813
+ return_values.push(a)
814
+
815
+
816
+
817
+ return_values[0]
818
+ end
819
+
820
+ # Find a transaction's refund by its ID.
821
+ # Params:
822
+ # +refund_id+:: ID of the refund
823
+ # +options+:: +Hash+ of options
824
+ def find_refund(refund_id, options = {})
825
+ self.prefill(options)
826
+
827
+ request = Request.new(@client)
828
+ path = "/transactions/" + CGI.escape(@id) + "/refunds/" + CGI.escape(refund_id) + ""
829
+ data = {
830
+
831
+ }
832
+
833
+ response = Response.new(request.get(path, data, options))
834
+ return_values = Array.new
835
+
836
+ body = response.body
837
+ body = body["refund"]
838
+ refund = Refund.new(@client)
839
+ return_values.push(refund.fill_with_data(body))
840
+
841
+
842
+ return_values[0]
843
+ end
844
+
845
+ # Get all the transactions.
846
+ # Params:
847
+ # +options+:: +Hash+ of options
848
+ def all(options = {})
849
+ self.prefill(options)
850
+
851
+ request = Request.new(@client)
852
+ path = "/transactions"
853
+ data = {
854
+
855
+ }
856
+
857
+ response = Response.new(request.get(path, data, options))
858
+ return_values = Array.new
859
+
860
+ a = Array.new
861
+ body = response.body
862
+ for v in body['transactions']
863
+ tmp = Transaction.new(@client)
864
+ tmp.fill_with_data(v)
865
+ a.push(tmp)
866
+ end
867
+
868
+ return_values.push(a)
869
+
870
+
871
+
872
+ return_values[0]
873
+ end
874
+
875
+ # Find a transaction by its ID.
876
+ # Params:
877
+ # +transaction_id+:: ID of the transaction
878
+ # +options+:: +Hash+ of options
879
+ def find(transaction_id, options = {})
880
+ self.prefill(options)
881
+
882
+ request = Request.new(@client)
883
+ path = "/transactions/" + CGI.escape(transaction_id) + ""
884
+ data = {
885
+
886
+ }
887
+
888
+ response = Response.new(request.get(path, data, options))
889
+ return_values = Array.new
890
+
891
+ body = response.body
892
+ body = body["transaction"]
893
+
894
+
895
+ obj = Transaction.new(@client)
896
+ return_values.push(obj.fill_with_data(body))
897
+
898
+
899
+
900
+ return_values[0]
901
+ end
902
+
903
+
904
+ end
905
+ end