processout 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/processout/activity.rb +30 -6
- data/lib/processout/authorization_request.rb +44 -22
- data/lib/processout/card.rb +40 -13
- data/lib/processout/coupon.rb +50 -13
- data/lib/processout/customer.rb +66 -25
- data/lib/processout/customer_action.rb +18 -2
- data/lib/processout/discount.rb +38 -9
- data/lib/processout/event.rb +32 -6
- data/lib/processout/gateway.rb +30 -8
- data/lib/processout/gateway_configuration.rb +24 -5
- data/lib/processout/invoice.rb +66 -16
- data/lib/processout/plan.rb +50 -14
- data/lib/processout/product.rb +52 -13
- data/lib/processout/project.rb +26 -5
- data/lib/processout/refund.rb +34 -8
- data/lib/processout/subscription.rb +107 -37
- data/lib/processout/token.rb +38 -8
- data/lib/processout/transaction.rb +56 -17
- data/lib/processout/version.rb +1 -1
- data/lib/processout/webhook.rb +38 -12
- metadata +3 -3
data/lib/processout/project.rb
CHANGED
@@ -42,11 +42,11 @@ module ProcessOut
|
|
42
42
|
def initialize(client, data = {})
|
43
43
|
@client = client
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
45
|
+
self.id = data.fetch(:id, nil)
|
46
|
+
self.name = data.fetch(:name, nil)
|
47
|
+
self.logo_url = data.fetch(:logo_url, nil)
|
48
|
+
self.email = data.fetch(:email, nil)
|
49
|
+
self.created_at = data.fetch(:created_at, nil)
|
50
50
|
|
51
51
|
end
|
52
52
|
|
@@ -59,6 +59,9 @@ module ProcessOut
|
|
59
59
|
# Params:
|
60
60
|
# +data+:: +Hash+ of data coming from the API
|
61
61
|
def fill_with_data(data)
|
62
|
+
if data.nil?
|
63
|
+
return self
|
64
|
+
end
|
62
65
|
if data.include? "id"
|
63
66
|
self.id = data["id"]
|
64
67
|
end
|
@@ -78,10 +81,28 @@ module ProcessOut
|
|
78
81
|
self
|
79
82
|
end
|
80
83
|
|
84
|
+
# Prefills the object with the data passed as Parameters
|
85
|
+
# Params:
|
86
|
+
# +data+:: +Hash+ of data
|
87
|
+
def prefill(data)
|
88
|
+
if data.nil?
|
89
|
+
return self
|
90
|
+
end
|
91
|
+
self.id = data.fetch(:id, self.id)
|
92
|
+
self.name = data.fetch(:name, self.name)
|
93
|
+
self.logo_url = data.fetch(:logo_url, self.logo_url)
|
94
|
+
self.email = data.fetch(:email, self.email)
|
95
|
+
self.created_at = data.fetch(:created_at, self.created_at)
|
96
|
+
|
97
|
+
self
|
98
|
+
end
|
99
|
+
|
81
100
|
# Get all the gateway configurations of the project
|
82
101
|
# Params:
|
83
102
|
# +options+:: +Hash+ of options
|
84
103
|
def fetch_gateway_configurations(options = {})
|
104
|
+
self.prefill(options)
|
105
|
+
|
85
106
|
request = Request.new(@client)
|
86
107
|
path = "/projects/" + CGI.escape(@id) + "/gateway-configurations"
|
87
108
|
data = {
|
data/lib/processout/refund.rb
CHANGED
@@ -64,14 +64,14 @@ module ProcessOut
|
|
64
64
|
def initialize(client, data = {})
|
65
65
|
@client = client
|
66
66
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
67
|
+
self.id = data.fetch(:id, nil)
|
68
|
+
self.transaction = data.fetch(:transaction, nil)
|
69
|
+
self.reason = data.fetch(:reason, nil)
|
70
|
+
self.information = data.fetch(:information, nil)
|
71
|
+
self.amount = data.fetch(:amount, nil)
|
72
|
+
self.metadata = data.fetch(:metadata, nil)
|
73
|
+
self.sandbox = data.fetch(:sandbox, nil)
|
74
|
+
self.created_at = data.fetch(:created_at, nil)
|
75
75
|
|
76
76
|
end
|
77
77
|
|
@@ -84,6 +84,9 @@ module ProcessOut
|
|
84
84
|
# Params:
|
85
85
|
# +data+:: +Hash+ of data coming from the API
|
86
86
|
def fill_with_data(data)
|
87
|
+
if data.nil?
|
88
|
+
return self
|
89
|
+
end
|
87
90
|
if data.include? "id"
|
88
91
|
self.id = data["id"]
|
89
92
|
end
|
@@ -112,12 +115,33 @@ module ProcessOut
|
|
112
115
|
self
|
113
116
|
end
|
114
117
|
|
118
|
+
# Prefills the object with the data passed as Parameters
|
119
|
+
# Params:
|
120
|
+
# +data+:: +Hash+ of data
|
121
|
+
def prefill(data)
|
122
|
+
if data.nil?
|
123
|
+
return self
|
124
|
+
end
|
125
|
+
self.id = data.fetch(:id, self.id)
|
126
|
+
self.transaction = data.fetch(:transaction, self.transaction)
|
127
|
+
self.reason = data.fetch(:reason, self.reason)
|
128
|
+
self.information = data.fetch(:information, self.information)
|
129
|
+
self.amount = data.fetch(:amount, self.amount)
|
130
|
+
self.metadata = data.fetch(:metadata, self.metadata)
|
131
|
+
self.sandbox = data.fetch(:sandbox, self.sandbox)
|
132
|
+
self.created_at = data.fetch(:created_at, self.created_at)
|
133
|
+
|
134
|
+
self
|
135
|
+
end
|
136
|
+
|
115
137
|
# Find a transaction's refund by its ID.
|
116
138
|
# Params:
|
117
139
|
# +transaction_id+:: ID of the transaction on which the refund was applied
|
118
140
|
# +refund_id+:: ID of the refund
|
119
141
|
# +options+:: +Hash+ of options
|
120
142
|
def find(transaction_id, refund_id, options = {})
|
143
|
+
self.prefill(options)
|
144
|
+
|
121
145
|
request = Request.new(@client)
|
122
146
|
path = "/transactions/" + CGI.escape(transaction_id) + "/refunds/" + CGI.escape(refund_id) + ""
|
123
147
|
data = {
|
@@ -144,6 +168,8 @@ module ProcessOut
|
|
144
168
|
# +transaction_id+:: ID of the transaction
|
145
169
|
# +options+:: +Hash+ of options
|
146
170
|
def apply(transaction_id, options = {})
|
171
|
+
self.prefill(options)
|
172
|
+
|
147
173
|
request = Request.new(@client)
|
148
174
|
path = "/transactions/" + CGI.escape(transaction_id) + "/refunds"
|
149
175
|
data = {
|
@@ -165,30 +165,30 @@ module ProcessOut
|
|
165
165
|
def initialize(client, data = {})
|
166
166
|
@client = client
|
167
167
|
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
168
|
+
self.id = data.fetch(:id, nil)
|
169
|
+
self.project = data.fetch(:project, nil)
|
170
|
+
self.plan = data.fetch(:plan, nil)
|
171
|
+
self.customer = data.fetch(:customer, nil)
|
172
|
+
self.token = data.fetch(:token, nil)
|
173
|
+
self.url = data.fetch(:url, nil)
|
174
|
+
self.name = data.fetch(:name, nil)
|
175
|
+
self.amount = data.fetch(:amount, nil)
|
176
|
+
self.currency = data.fetch(:currency, nil)
|
177
|
+
self.metadata = data.fetch(:metadata, nil)
|
178
|
+
self.interval = data.fetch(:interval, nil)
|
179
|
+
self.trial_end_at = data.fetch(:trial_end_at, nil)
|
180
|
+
self.activated = data.fetch(:activated, nil)
|
181
|
+
self.active = data.fetch(:active, nil)
|
182
|
+
self.canceled = data.fetch(:canceled, nil)
|
183
|
+
self.cancellation_reason = data.fetch(:cancellation_reason, nil)
|
184
|
+
self.pending_cancellation = data.fetch(:pending_cancellation, nil)
|
185
|
+
self.cancel_at = data.fetch(:cancel_at, nil)
|
186
|
+
self.return_url = data.fetch(:return_url, nil)
|
187
|
+
self.cancel_url = data.fetch(:cancel_url, nil)
|
188
|
+
self.sandbox = data.fetch(:sandbox, nil)
|
189
|
+
self.created_at = data.fetch(:created_at, nil)
|
190
|
+
self.activated_at = data.fetch(:activated_at, nil)
|
191
|
+
self.iterate_at = data.fetch(:iterate_at, nil)
|
192
192
|
|
193
193
|
end
|
194
194
|
|
@@ -201,6 +201,9 @@ module ProcessOut
|
|
201
201
|
# Params:
|
202
202
|
# +data+:: +Hash+ of data coming from the API
|
203
203
|
def fill_with_data(data)
|
204
|
+
if data.nil?
|
205
|
+
return self
|
206
|
+
end
|
204
207
|
if data.include? "id"
|
205
208
|
self.id = data["id"]
|
206
209
|
end
|
@@ -277,10 +280,47 @@ module ProcessOut
|
|
277
280
|
self
|
278
281
|
end
|
279
282
|
|
283
|
+
# Prefills the object with the data passed as Parameters
|
284
|
+
# Params:
|
285
|
+
# +data+:: +Hash+ of data
|
286
|
+
def prefill(data)
|
287
|
+
if data.nil?
|
288
|
+
return self
|
289
|
+
end
|
290
|
+
self.id = data.fetch(:id, self.id)
|
291
|
+
self.project = data.fetch(:project, self.project)
|
292
|
+
self.plan = data.fetch(:plan, self.plan)
|
293
|
+
self.customer = data.fetch(:customer, self.customer)
|
294
|
+
self.token = data.fetch(:token, self.token)
|
295
|
+
self.url = data.fetch(:url, self.url)
|
296
|
+
self.name = data.fetch(:name, self.name)
|
297
|
+
self.amount = data.fetch(:amount, self.amount)
|
298
|
+
self.currency = data.fetch(:currency, self.currency)
|
299
|
+
self.metadata = data.fetch(:metadata, self.metadata)
|
300
|
+
self.interval = data.fetch(:interval, self.interval)
|
301
|
+
self.trial_end_at = data.fetch(:trial_end_at, self.trial_end_at)
|
302
|
+
self.activated = data.fetch(:activated, self.activated)
|
303
|
+
self.active = data.fetch(:active, self.active)
|
304
|
+
self.canceled = data.fetch(:canceled, self.canceled)
|
305
|
+
self.cancellation_reason = data.fetch(:cancellation_reason, self.cancellation_reason)
|
306
|
+
self.pending_cancellation = data.fetch(:pending_cancellation, self.pending_cancellation)
|
307
|
+
self.cancel_at = data.fetch(:cancel_at, self.cancel_at)
|
308
|
+
self.return_url = data.fetch(:return_url, self.return_url)
|
309
|
+
self.cancel_url = data.fetch(:cancel_url, self.cancel_url)
|
310
|
+
self.sandbox = data.fetch(:sandbox, self.sandbox)
|
311
|
+
self.created_at = data.fetch(:created_at, self.created_at)
|
312
|
+
self.activated_at = data.fetch(:activated_at, self.activated_at)
|
313
|
+
self.iterate_at = data.fetch(:iterate_at, self.iterate_at)
|
314
|
+
|
315
|
+
self
|
316
|
+
end
|
317
|
+
|
280
318
|
# Get the customer owning the subscription.
|
281
319
|
# Params:
|
282
320
|
# +options+:: +Hash+ of options
|
283
321
|
def fetch_customer(options = {})
|
322
|
+
self.prefill(options)
|
323
|
+
|
284
324
|
request = Request.new(@client)
|
285
325
|
path = "/subscriptions/" + CGI.escape(@id) + "/customers"
|
286
326
|
data = {
|
@@ -303,6 +343,8 @@ module ProcessOut
|
|
303
343
|
# Params:
|
304
344
|
# +options+:: +Hash+ of options
|
305
345
|
def fetch_discounts(options = {})
|
346
|
+
self.prefill(options)
|
347
|
+
|
306
348
|
request = Request.new(@client)
|
307
349
|
path = "/subscriptions/" + CGI.escape(@id) + "/discounts"
|
308
350
|
data = {
|
@@ -332,6 +374,8 @@ module ProcessOut
|
|
332
374
|
# +coupon_id+:: ID of the coupon
|
333
375
|
# +options+:: +Hash+ of options
|
334
376
|
def apply_coupon(coupon_id, options = {})
|
377
|
+
self.prefill(options)
|
378
|
+
|
335
379
|
request = Request.new(@client)
|
336
380
|
path = "/subscriptions/" + CGI.escape(@id) + "/discounts"
|
337
381
|
data = {
|
@@ -355,6 +399,8 @@ module ProcessOut
|
|
355
399
|
# +discount_id+:: ID of the discount
|
356
400
|
# +options+:: +Hash+ of options
|
357
401
|
def find_discount(discount_id, options = {})
|
402
|
+
self.prefill(options)
|
403
|
+
|
358
404
|
request = Request.new(@client)
|
359
405
|
path = "/subscriptions/" + CGI.escape(@id) + "/discounts/" + CGI.escape(discount_id) + ""
|
360
406
|
data = {
|
@@ -378,6 +424,8 @@ module ProcessOut
|
|
378
424
|
# +discount_id+:: ID of the discount or coupon to be removed from the subscription
|
379
425
|
# +options+:: +Hash+ of options
|
380
426
|
def remove_discount(discount_id, options = {})
|
427
|
+
self.prefill(options)
|
428
|
+
|
381
429
|
request = Request.new(@client)
|
382
430
|
path = "/subscriptions/" + CGI.escape(@id) + "/discounts/" + CGI.escape(discount_id) + ""
|
383
431
|
data = {
|
@@ -402,6 +450,8 @@ module ProcessOut
|
|
402
450
|
# Params:
|
403
451
|
# +options+:: +Hash+ of options
|
404
452
|
def fetch_transactions(options = {})
|
453
|
+
self.prefill(options)
|
454
|
+
|
405
455
|
request = Request.new(@client)
|
406
456
|
path = "/subscriptions/" + CGI.escape(@id) + "/transactions"
|
407
457
|
data = {
|
@@ -430,6 +480,8 @@ module ProcessOut
|
|
430
480
|
# Params:
|
431
481
|
# +options+:: +Hash+ of options
|
432
482
|
def all(options = {})
|
483
|
+
self.prefill(options)
|
484
|
+
|
433
485
|
request = Request.new(@client)
|
434
486
|
path = "/subscriptions"
|
435
487
|
data = {
|
@@ -459,6 +511,8 @@ module ProcessOut
|
|
459
511
|
# +customer_id+:: ID of the customer
|
460
512
|
# +options+:: +Hash+ of options
|
461
513
|
def create(customer_id, options = {})
|
514
|
+
self.prefill(options)
|
515
|
+
|
462
516
|
request = Request.new(@client)
|
463
517
|
path = "/subscriptions"
|
464
518
|
data = {
|
@@ -494,6 +548,8 @@ module ProcessOut
|
|
494
548
|
# +plan_id+:: ID of the plan
|
495
549
|
# +options+:: +Hash+ of options
|
496
550
|
def create_from_plan(customer_id, plan_id, options = {})
|
551
|
+
self.prefill(options)
|
552
|
+
|
497
553
|
request = Request.new(@client)
|
498
554
|
path = "/subscriptions"
|
499
555
|
data = {
|
@@ -529,6 +585,8 @@ module ProcessOut
|
|
529
585
|
# +subscription_id+:: ID of the subscription
|
530
586
|
# +options+:: +Hash+ of options
|
531
587
|
def find(subscription_id, options = {})
|
588
|
+
self.prefill(options)
|
589
|
+
|
532
590
|
request = Request.new(@client)
|
533
591
|
path = "/subscriptions/" + CGI.escape(subscription_id) + ""
|
534
592
|
data = {
|
@@ -550,15 +608,18 @@ module ProcessOut
|
|
550
608
|
return_values[0]
|
551
609
|
end
|
552
610
|
|
553
|
-
# Update the subscription.
|
611
|
+
# Update the subscription's plan.
|
554
612
|
# Params:
|
613
|
+
# +plan_id+:: ID of the new plan to be applied on the subscription
|
555
614
|
# +prorate+:: Define if proration should be done when updating the plan
|
556
615
|
# +options+:: +Hash+ of options
|
557
|
-
def
|
616
|
+
def update_plan(plan_id, prorate, options = {})
|
617
|
+
self.prefill(options)
|
618
|
+
|
558
619
|
request = Request.new(@client)
|
559
620
|
path = "/subscriptions/" + CGI.escape(@id) + ""
|
560
621
|
data = {
|
561
|
-
"
|
622
|
+
"plan_id" => plan_id,
|
562
623
|
"prorate" => prorate
|
563
624
|
}
|
564
625
|
|
@@ -576,17 +637,17 @@ module ProcessOut
|
|
576
637
|
return_values[0]
|
577
638
|
end
|
578
639
|
|
579
|
-
#
|
640
|
+
# Apply a source to the subscription to activate or update the subscription's source.
|
580
641
|
# Params:
|
581
|
-
# +
|
582
|
-
# +prorate+:: Define if proration should be done when updating the plan
|
642
|
+
# +source+:: Source to be applied on the subscription and used to pay future invoices. Can be a card, a token or a gateway request
|
583
643
|
# +options+:: +Hash+ of options
|
584
|
-
def
|
644
|
+
def apply_source(source, options = {})
|
645
|
+
self.prefill(options)
|
646
|
+
|
585
647
|
request = Request.new(@client)
|
586
648
|
path = "/subscriptions/" + CGI.escape(@id) + ""
|
587
649
|
data = {
|
588
|
-
"
|
589
|
-
"prorate" => prorate
|
650
|
+
"source" => source
|
590
651
|
}
|
591
652
|
|
592
653
|
response = Response.new(request.put(path, data, options))
|
@@ -603,15 +664,20 @@ module ProcessOut
|
|
603
664
|
return_values[0]
|
604
665
|
end
|
605
666
|
|
606
|
-
#
|
667
|
+
# Save the updated subscription attributes.
|
607
668
|
# Params:
|
608
|
-
# +source+:: Source to be applied on the subscription and used to pay future invoices. Can be a card, a token or a gateway request
|
609
669
|
# +options+:: +Hash+ of options
|
610
|
-
def
|
670
|
+
def save(options = {})
|
671
|
+
self.prefill(options)
|
672
|
+
|
611
673
|
request = Request.new(@client)
|
612
674
|
path = "/subscriptions/" + CGI.escape(@id) + ""
|
613
675
|
data = {
|
614
|
-
"
|
676
|
+
"name" => @name,
|
677
|
+
"amount" => @amount,
|
678
|
+
"interval" => @interval,
|
679
|
+
"trial_end_at" => @trial_end_at,
|
680
|
+
"metadata" => @metadata
|
615
681
|
}
|
616
682
|
|
617
683
|
response = Response.new(request.put(path, data, options))
|
@@ -633,6 +699,8 @@ module ProcessOut
|
|
633
699
|
# +cancellation_reason+:: Cancellation reason
|
634
700
|
# +options+:: +Hash+ of options
|
635
701
|
def cancel(cancellation_reason, options = {})
|
702
|
+
self.prefill(options)
|
703
|
+
|
636
704
|
request = Request.new(@client)
|
637
705
|
path = "/subscriptions/" + CGI.escape(@id) + ""
|
638
706
|
data = {
|
@@ -659,6 +727,8 @@ module ProcessOut
|
|
659
727
|
# +cancellation_reason+:: Cancellation reason
|
660
728
|
# +options+:: +Hash+ of options
|
661
729
|
def cancel_at_date(cancel_at, cancellation_reason, options = {})
|
730
|
+
self.prefill(options)
|
731
|
+
|
662
732
|
request = Request.new(@client)
|
663
733
|
path = "/subscriptions/" + CGI.escape(@id) + ""
|
664
734
|
data = {
|
data/lib/processout/token.rb
CHANGED
@@ -71,14 +71,14 @@ module ProcessOut
|
|
71
71
|
def initialize(client, data = {})
|
72
72
|
@client = client
|
73
73
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
74
|
+
self.id = data.fetch(:id, nil)
|
75
|
+
self.customer = data.fetch(:customer, nil)
|
76
|
+
self.customer_id = data.fetch(:customer_id, nil)
|
77
|
+
self.card = data.fetch(:card, nil)
|
78
|
+
self.type = data.fetch(:type, nil)
|
79
|
+
self.metadata = data.fetch(:metadata, nil)
|
80
|
+
self.is_subscription_only = data.fetch(:is_subscription_only, nil)
|
81
|
+
self.created_at = data.fetch(:created_at, nil)
|
82
82
|
|
83
83
|
end
|
84
84
|
|
@@ -91,6 +91,9 @@ module ProcessOut
|
|
91
91
|
# Params:
|
92
92
|
# +data+:: +Hash+ of data coming from the API
|
93
93
|
def fill_with_data(data)
|
94
|
+
if data.nil?
|
95
|
+
return self
|
96
|
+
end
|
94
97
|
if data.include? "id"
|
95
98
|
self.id = data["id"]
|
96
99
|
end
|
@@ -119,12 +122,33 @@ module ProcessOut
|
|
119
122
|
self
|
120
123
|
end
|
121
124
|
|
125
|
+
# Prefills the object with the data passed as Parameters
|
126
|
+
# Params:
|
127
|
+
# +data+:: +Hash+ of data
|
128
|
+
def prefill(data)
|
129
|
+
if data.nil?
|
130
|
+
return self
|
131
|
+
end
|
132
|
+
self.id = data.fetch(:id, self.id)
|
133
|
+
self.customer = data.fetch(:customer, self.customer)
|
134
|
+
self.customer_id = data.fetch(:customer_id, self.customer_id)
|
135
|
+
self.card = data.fetch(:card, self.card)
|
136
|
+
self.type = data.fetch(:type, self.type)
|
137
|
+
self.metadata = data.fetch(:metadata, self.metadata)
|
138
|
+
self.is_subscription_only = data.fetch(:is_subscription_only, self.is_subscription_only)
|
139
|
+
self.created_at = data.fetch(:created_at, self.created_at)
|
140
|
+
|
141
|
+
self
|
142
|
+
end
|
143
|
+
|
122
144
|
# Find a customer's token by its ID.
|
123
145
|
# Params:
|
124
146
|
# +customer_id+:: ID of the customer
|
125
147
|
# +token_id+:: ID of the token
|
126
148
|
# +options+:: +Hash+ of options
|
127
149
|
def find(customer_id, token_id, options = {})
|
150
|
+
self.prefill(options)
|
151
|
+
|
128
152
|
request = Request.new(@client)
|
129
153
|
path = "/customers/" + CGI.escape(customer_id) + "/tokens/" + CGI.escape(token_id) + ""
|
130
154
|
data = {
|
@@ -152,6 +176,8 @@ module ProcessOut
|
|
152
176
|
# +source+:: Source used to create the token (most likely a card token generated by ProcessOut.js)
|
153
177
|
# +options+:: +Hash+ of options
|
154
178
|
def create(customer_id, source, options = {})
|
179
|
+
self.prefill(options)
|
180
|
+
|
155
181
|
request = Request.new(@client)
|
156
182
|
path = "/customers/" + CGI.escape(customer_id) + "/tokens"
|
157
183
|
data = {
|
@@ -180,6 +206,8 @@ module ProcessOut
|
|
180
206
|
# +target+:: Authorization request ID
|
181
207
|
# +options+:: +Hash+ of options
|
182
208
|
def create_from_request(customer_id, source, target, options = {})
|
209
|
+
self.prefill(options)
|
210
|
+
|
183
211
|
request = Request.new(@client)
|
184
212
|
path = "/customers/" + CGI.escape(customer_id) + "/tokens"
|
185
213
|
data = {
|
@@ -206,6 +234,8 @@ module ProcessOut
|
|
206
234
|
# Params:
|
207
235
|
# +options+:: +Hash+ of options
|
208
236
|
def delete(options = {})
|
237
|
+
self.prefill(options)
|
238
|
+
|
209
239
|
request = Request.new(@client)
|
210
240
|
path = "customers/" + CGI.escape(@customer_id) + "/tokens/" + CGI.escape(@id) + ""
|
211
241
|
data = {
|
@@ -137,23 +137,23 @@ module ProcessOut
|
|
137
137
|
def initialize(client, data = {})
|
138
138
|
@client = client
|
139
139
|
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
140
|
+
self.id = data.fetch(:id, nil)
|
141
|
+
self.project = data.fetch(:project, nil)
|
142
|
+
self.customer = data.fetch(:customer, nil)
|
143
|
+
self.subscription = data.fetch(:subscription, nil)
|
144
|
+
self.token = data.fetch(:token, nil)
|
145
|
+
self.card = data.fetch(:card, nil)
|
146
|
+
self.name = data.fetch(:name, nil)
|
147
|
+
self.authorized_amount = data.fetch(:authorized_amount, nil)
|
148
|
+
self.captured_amount = data.fetch(:captured_amount, nil)
|
149
|
+
self.currency = data.fetch(:currency, nil)
|
150
|
+
self.status = data.fetch(:status, nil)
|
151
|
+
self.authorized = data.fetch(:authorized, nil)
|
152
|
+
self.captured = data.fetch(:captured, nil)
|
153
|
+
self.processout_fee = data.fetch(:processout_fee, nil)
|
154
|
+
self.metadata = data.fetch(:metadata, nil)
|
155
|
+
self.sandbox = data.fetch(:sandbox, nil)
|
156
|
+
self.created_at = data.fetch(:created_at, nil)
|
157
157
|
|
158
158
|
end
|
159
159
|
|
@@ -166,6 +166,9 @@ module ProcessOut
|
|
166
166
|
# Params:
|
167
167
|
# +data+:: +Hash+ of data coming from the API
|
168
168
|
def fill_with_data(data)
|
169
|
+
if data.nil?
|
170
|
+
return self
|
171
|
+
end
|
169
172
|
if data.include? "id"
|
170
173
|
self.id = data["id"]
|
171
174
|
end
|
@@ -221,10 +224,40 @@ module ProcessOut
|
|
221
224
|
self
|
222
225
|
end
|
223
226
|
|
227
|
+
# Prefills the object with the data passed as Parameters
|
228
|
+
# Params:
|
229
|
+
# +data+:: +Hash+ of data
|
230
|
+
def prefill(data)
|
231
|
+
if data.nil?
|
232
|
+
return self
|
233
|
+
end
|
234
|
+
self.id = data.fetch(:id, self.id)
|
235
|
+
self.project = data.fetch(:project, self.project)
|
236
|
+
self.customer = data.fetch(:customer, self.customer)
|
237
|
+
self.subscription = data.fetch(:subscription, self.subscription)
|
238
|
+
self.token = data.fetch(:token, self.token)
|
239
|
+
self.card = data.fetch(:card, self.card)
|
240
|
+
self.name = data.fetch(:name, self.name)
|
241
|
+
self.authorized_amount = data.fetch(:authorized_amount, self.authorized_amount)
|
242
|
+
self.captured_amount = data.fetch(:captured_amount, self.captured_amount)
|
243
|
+
self.currency = data.fetch(:currency, self.currency)
|
244
|
+
self.status = data.fetch(:status, self.status)
|
245
|
+
self.authorized = data.fetch(:authorized, self.authorized)
|
246
|
+
self.captured = data.fetch(:captured, self.captured)
|
247
|
+
self.processout_fee = data.fetch(:processout_fee, self.processout_fee)
|
248
|
+
self.metadata = data.fetch(:metadata, self.metadata)
|
249
|
+
self.sandbox = data.fetch(:sandbox, self.sandbox)
|
250
|
+
self.created_at = data.fetch(:created_at, self.created_at)
|
251
|
+
|
252
|
+
self
|
253
|
+
end
|
254
|
+
|
224
255
|
# Get the transaction's refunds.
|
225
256
|
# Params:
|
226
257
|
# +options+:: +Hash+ of options
|
227
258
|
def fetch_refunds(options = {})
|
259
|
+
self.prefill(options)
|
260
|
+
|
228
261
|
request = Request.new(@client)
|
229
262
|
path = "/transactions/" + CGI.escape(@id) + "/refunds"
|
230
263
|
data = {
|
@@ -254,6 +287,8 @@ module ProcessOut
|
|
254
287
|
# +refund_id+:: ID of the refund
|
255
288
|
# +options+:: +Hash+ of options
|
256
289
|
def find_refund(refund_id, options = {})
|
290
|
+
self.prefill(options)
|
291
|
+
|
257
292
|
request = Request.new(@client)
|
258
293
|
path = "/transactions/" + CGI.escape(@id) + "/refunds/" + CGI.escape(refund_id) + ""
|
259
294
|
data = {
|
@@ -276,6 +311,8 @@ module ProcessOut
|
|
276
311
|
# Params:
|
277
312
|
# +options+:: +Hash+ of options
|
278
313
|
def all(options = {})
|
314
|
+
self.prefill(options)
|
315
|
+
|
279
316
|
request = Request.new(@client)
|
280
317
|
path = "/transactions"
|
281
318
|
data = {
|
@@ -305,6 +342,8 @@ module ProcessOut
|
|
305
342
|
# +transaction_id+:: ID of the transaction
|
306
343
|
# +options+:: +Hash+ of options
|
307
344
|
def find(transaction_id, options = {})
|
345
|
+
self.prefill(options)
|
346
|
+
|
308
347
|
request = Request.new(@client)
|
309
348
|
path = "/transactions/" + CGI.escape(transaction_id) + ""
|
310
349
|
data = {
|
data/lib/processout/version.rb
CHANGED