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.
@@ -42,11 +42,11 @@ module ProcessOut
42
42
  def initialize(client, data = {})
43
43
  @client = client
44
44
 
45
- @id = data.fetch(:id, "")
46
- @name = data.fetch(:name, "")
47
- @logo_url = data.fetch(:logo_url, "")
48
- @email = data.fetch(:email, "")
49
- @created_at = data.fetch(:created_at, "")
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 = {
@@ -64,14 +64,14 @@ module ProcessOut
64
64
  def initialize(client, data = {})
65
65
  @client = client
66
66
 
67
- @id = data.fetch(:id, "")
68
- @transaction = data.fetch(:transaction, nil)
69
- @reason = data.fetch(:reason, "")
70
- @information = data.fetch(:information, "")
71
- @amount = data.fetch(:amount, "")
72
- @metadata = data.fetch(:metadata, Hash.new)
73
- @sandbox = data.fetch(:sandbox, false)
74
- @created_at = data.fetch(:created_at, "")
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
- @id = data.fetch(:id, "")
169
- @project = data.fetch(:project, nil)
170
- @plan = data.fetch(:plan, nil)
171
- @customer = data.fetch(:customer, nil)
172
- @token = data.fetch(:token, nil)
173
- @url = data.fetch(:url, "")
174
- @name = data.fetch(:name, "")
175
- @amount = data.fetch(:amount, "")
176
- @currency = data.fetch(:currency, "")
177
- @metadata = data.fetch(:metadata, Hash.new)
178
- @interval = data.fetch(:interval, "")
179
- @trial_end_at = data.fetch(:trial_end_at, "")
180
- @activated = data.fetch(:activated, false)
181
- @active = data.fetch(:active, false)
182
- @canceled = data.fetch(:canceled, false)
183
- @cancellation_reason = data.fetch(:cancellation_reason, "")
184
- @pending_cancellation = data.fetch(:pending_cancellation, false)
185
- @cancel_at = data.fetch(:cancel_at, "")
186
- @return_url = data.fetch(:return_url, "")
187
- @cancel_url = data.fetch(:cancel_url, "")
188
- @sandbox = data.fetch(:sandbox, false)
189
- @created_at = data.fetch(:created_at, "")
190
- @activated_at = data.fetch(:activated_at, "")
191
- @iterate_at = data.fetch(:iterate_at, "")
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 update(prorate, options = {})
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
- "trial_end_at" => @trial_end_at,
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
- # Update the subscription's plan.
640
+ # Apply a source to the subscription to activate or update the subscription's source.
580
641
  # Params:
581
- # +plan_id+:: ID of the new plan to be applied on the subscription
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 update_plan(plan_id, prorate, options = {})
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
- "plan_id" => plan_id,
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
- # Apply a source to the subscription to activate or update the subscription's source.
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 apply_source(source, options = {})
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
- "source" => source
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 = {
@@ -71,14 +71,14 @@ module ProcessOut
71
71
  def initialize(client, data = {})
72
72
  @client = client
73
73
 
74
- @id = data.fetch(:id, "")
75
- @customer = data.fetch(:customer, nil)
76
- @customer_id = data.fetch(:customer_id, "")
77
- @card = data.fetch(:card, nil)
78
- @type = data.fetch(:type, "")
79
- @metadata = data.fetch(:metadata, Hash.new)
80
- @is_subscription_only = data.fetch(:is_subscription_only, false)
81
- @created_at = data.fetch(:created_at, "")
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
- @id = data.fetch(:id, "")
141
- @project = data.fetch(:project, nil)
142
- @customer = data.fetch(:customer, nil)
143
- @subscription = data.fetch(:subscription, nil)
144
- @token = data.fetch(:token, nil)
145
- @card = data.fetch(:card, nil)
146
- @name = data.fetch(:name, "")
147
- @authorized_amount = data.fetch(:authorized_amount, "")
148
- @captured_amount = data.fetch(:captured_amount, "")
149
- @currency = data.fetch(:currency, "")
150
- @status = data.fetch(:status, "")
151
- @authorized = data.fetch(:authorized, false)
152
- @captured = data.fetch(:captured, false)
153
- @processout_fee = data.fetch(:processout_fee, "")
154
- @metadata = data.fetch(:metadata, Hash.new)
155
- @sandbox = data.fetch(:sandbox, false)
156
- @created_at = data.fetch(:created_at, "")
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 = {
@@ -1,3 +1,3 @@
1
1
  module ProcessOut
2
- VERSION = "1.0.6"
2
+ VERSION = "1.0.7"
3
3
  end