processout 1.0.6 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 844cbd649a45c4d20d32bfa8c42aed398ec268bd
4
- data.tar.gz: d69fa97715bb0b4f3531ac537d5a595d64a6ebc9
3
+ metadata.gz: d1b2404eb8a87ec21152d52ba6524d0fedc261bb
4
+ data.tar.gz: 6cbfdd364e7b5686184619ad13cccef9838952ba
5
5
  SHA512:
6
- metadata.gz: bab0a86709db909be81a7738d2aa86b364bac67390a1294b45a4f730c3d46ad2ffb3f0b3a46a148ac9ddfcce10e90006d754d7ce633da468fc5e3d26bb3e49ed
7
- data.tar.gz: 8c77fbe668cf7220dbf3fdd3ba5a1557e5256b956abb91b9c5cfcd2e25bb5f6a2ea8b7dabd3fc5a2a4eae88c882df282b9f6233d18efb0bb0a35e4eba8b8734f
6
+ metadata.gz: 6f529dc34677098ecb3a8b33bdf4ee37fc5baffef55ddbe776b778892ffc8ba2debc57f27e299c5a051bb9399ce4b4dcb685118e5adbe50a758e334e43732002
7
+ data.tar.gz: 0ea855dbec75edfc07a44c262a1df2b8d6c603aa707b85870094dccafb76a745716e3dd1c82e2120849ce5dafce553c0e13409ea75a2720d2a1f52347347f75a
@@ -54,12 +54,12 @@ module ProcessOut
54
54
  def initialize(client, data = {})
55
55
  @client = client
56
56
 
57
- @id = data.fetch(:id, "")
58
- @project = data.fetch(:project, nil)
59
- @title = data.fetch(:title, "")
60
- @content = data.fetch(:content, "")
61
- @level = data.fetch(:level, 0)
62
- @created_at = data.fetch(:created_at, "")
57
+ self.id = data.fetch(:id, nil)
58
+ self.project = data.fetch(:project, nil)
59
+ self.title = data.fetch(:title, nil)
60
+ self.content = data.fetch(:content, nil)
61
+ self.level = data.fetch(:level, nil)
62
+ self.created_at = data.fetch(:created_at, nil)
63
63
 
64
64
  end
65
65
 
@@ -72,6 +72,9 @@ module ProcessOut
72
72
  # Params:
73
73
  # +data+:: +Hash+ of data coming from the API
74
74
  def fill_with_data(data)
75
+ if data.nil?
76
+ return self
77
+ end
75
78
  if data.include? "id"
76
79
  self.id = data["id"]
77
80
  end
@@ -94,10 +97,29 @@ module ProcessOut
94
97
  self
95
98
  end
96
99
 
100
+ # Prefills the object with the data passed as Parameters
101
+ # Params:
102
+ # +data+:: +Hash+ of data
103
+ def prefill(data)
104
+ if data.nil?
105
+ return self
106
+ end
107
+ self.id = data.fetch(:id, self.id)
108
+ self.project = data.fetch(:project, self.project)
109
+ self.title = data.fetch(:title, self.title)
110
+ self.content = data.fetch(:content, self.content)
111
+ self.level = data.fetch(:level, self.level)
112
+ self.created_at = data.fetch(:created_at, self.created_at)
113
+
114
+ self
115
+ end
116
+
97
117
  # Get all the project activities.
98
118
  # Params:
99
119
  # +options+:: +Hash+ of options
100
120
  def all(options = {})
121
+ self.prefill(options)
122
+
101
123
  request = Request.new(@client)
102
124
  path = "/activities"
103
125
  data = {
@@ -127,6 +149,8 @@ module ProcessOut
127
149
  # +activity_id+:: ID of the activity
128
150
  # +options+:: +Hash+ of options
129
151
  def find(activity_id, options = {})
152
+ self.prefill(options)
153
+
130
154
  request = Request.new(@client)
131
155
  path = "/activities/" + CGI.escape(activity_id) + ""
132
156
  data = {
@@ -17,7 +17,6 @@ module ProcessOut
17
17
  attr_reader :currency
18
18
  attr_reader :return_url
19
19
  attr_reader :cancel_url
20
- attr_reader :custom
21
20
  attr_reader :sandbox
22
21
  attr_reader :created_at
23
22
 
@@ -83,10 +82,6 @@ module ProcessOut
83
82
  @cancel_url = val
84
83
  end
85
84
 
86
- def custom=(val)
87
- @custom = val
88
- end
89
-
90
85
  def sandbox=(val)
91
86
  @sandbox = val
92
87
  end
@@ -103,19 +98,18 @@ module ProcessOut
103
98
  def initialize(client, data = {})
104
99
  @client = client
105
100
 
106
- @id = data.fetch(:id, "")
107
- @project = data.fetch(:project, nil)
108
- @customer = data.fetch(:customer, nil)
109
- @token = data.fetch(:token, nil)
110
- @url = data.fetch(:url, "")
111
- @authorized = data.fetch(:authorized, false)
112
- @name = data.fetch(:name, "")
113
- @currency = data.fetch(:currency, "")
114
- @return_url = data.fetch(:return_url, "")
115
- @cancel_url = data.fetch(:cancel_url, "")
116
- @custom = data.fetch(:custom, "")
117
- @sandbox = data.fetch(:sandbox, false)
118
- @created_at = data.fetch(:created_at, "")
101
+ self.id = data.fetch(:id, nil)
102
+ self.project = data.fetch(:project, nil)
103
+ self.customer = data.fetch(:customer, nil)
104
+ self.token = data.fetch(:token, nil)
105
+ self.url = data.fetch(:url, nil)
106
+ self.authorized = data.fetch(:authorized, nil)
107
+ self.name = data.fetch(:name, nil)
108
+ self.currency = data.fetch(:currency, nil)
109
+ self.return_url = data.fetch(:return_url, nil)
110
+ self.cancel_url = data.fetch(:cancel_url, nil)
111
+ self.sandbox = data.fetch(:sandbox, nil)
112
+ self.created_at = data.fetch(:created_at, nil)
119
113
 
120
114
  end
121
115
 
@@ -128,6 +122,9 @@ module ProcessOut
128
122
  # Params:
129
123
  # +data+:: +Hash+ of data coming from the API
130
124
  def fill_with_data(data)
125
+ if data.nil?
126
+ return self
127
+ end
131
128
  if data.include? "id"
132
129
  self.id = data["id"]
133
130
  end
@@ -158,9 +155,6 @@ module ProcessOut
158
155
  if data.include? "cancel_url"
159
156
  self.cancel_url = data["cancel_url"]
160
157
  end
161
- if data.include? "custom"
162
- self.custom = data["custom"]
163
- end
164
158
  if data.include? "sandbox"
165
159
  self.sandbox = data["sandbox"]
166
160
  end
@@ -171,10 +165,35 @@ module ProcessOut
171
165
  self
172
166
  end
173
167
 
168
+ # Prefills the object with the data passed as Parameters
169
+ # Params:
170
+ # +data+:: +Hash+ of data
171
+ def prefill(data)
172
+ if data.nil?
173
+ return self
174
+ end
175
+ self.id = data.fetch(:id, self.id)
176
+ self.project = data.fetch(:project, self.project)
177
+ self.customer = data.fetch(:customer, self.customer)
178
+ self.token = data.fetch(:token, self.token)
179
+ self.url = data.fetch(:url, self.url)
180
+ self.authorized = data.fetch(:authorized, self.authorized)
181
+ self.name = data.fetch(:name, self.name)
182
+ self.currency = data.fetch(:currency, self.currency)
183
+ self.return_url = data.fetch(:return_url, self.return_url)
184
+ self.cancel_url = data.fetch(:cancel_url, self.cancel_url)
185
+ self.sandbox = data.fetch(:sandbox, self.sandbox)
186
+ self.created_at = data.fetch(:created_at, self.created_at)
187
+
188
+ self
189
+ end
190
+
174
191
  # Get the customer linked to the authorization request.
175
192
  # Params:
176
193
  # +options+:: +Hash+ of options
177
194
  def fetch_customer(options = {})
195
+ self.prefill(options)
196
+
178
197
  request = Request.new(@client)
179
198
  path = "/authorization-requests/" + CGI.escape(@id) + "/customers"
180
199
  data = {
@@ -198,6 +217,8 @@ module ProcessOut
198
217
  # +customer_id+:: ID of the customer
199
218
  # +options+:: +Hash+ of options
200
219
  def create(customer_id, options = {})
220
+ self.prefill(options)
221
+
201
222
  request = Request.new(@client)
202
223
  path = "/authorization-requests"
203
224
  data = {
@@ -205,7 +226,6 @@ module ProcessOut
205
226
  "currency" => @currency,
206
227
  "return_url" => @return_url,
207
228
  "cancel_url" => @cancel_url,
208
- "custom" => @custom,
209
229
  "customer_id" => customer_id
210
230
  }
211
231
 
@@ -228,6 +248,8 @@ module ProcessOut
228
248
  # +authorization_request_id+:: ID of the authorization request
229
249
  # +options+:: +Hash+ of options
230
250
  def find(authorization_request_id, options = {})
251
+ self.prefill(options)
252
+
231
253
  request = Request.new(@client)
232
254
  path = "/authorization-requests/" + CGI.escape(authorization_request_id) + ""
233
255
  data = {
@@ -89,19 +89,19 @@ module ProcessOut
89
89
  def initialize(client, data = {})
90
90
  @client = client
91
91
 
92
- @id = data.fetch(:id, "")
93
- @project = data.fetch(:project, nil)
94
- @scheme = data.fetch(:scheme, "")
95
- @type = data.fetch(:type, "")
96
- @bank_name = data.fetch(:bank_name, "")
97
- @brand = data.fetch(:brand, "")
98
- @iin = data.fetch(:iin, "")
99
- @last_4_digits = data.fetch(:last_4_digits, "")
100
- @exp_month = data.fetch(:exp_month, 0)
101
- @exp_year = data.fetch(:exp_year, 0)
102
- @metadata = data.fetch(:metadata, Hash.new)
103
- @sandbox = data.fetch(:sandbox, false)
104
- @created_at = data.fetch(:created_at, "")
92
+ self.id = data.fetch(:id, nil)
93
+ self.project = data.fetch(:project, nil)
94
+ self.scheme = data.fetch(:scheme, nil)
95
+ self.type = data.fetch(:type, nil)
96
+ self.bank_name = data.fetch(:bank_name, nil)
97
+ self.brand = data.fetch(:brand, nil)
98
+ self.iin = data.fetch(:iin, nil)
99
+ self.last_4_digits = data.fetch(:last_4_digits, nil)
100
+ self.exp_month = data.fetch(:exp_month, nil)
101
+ self.exp_year = data.fetch(:exp_year, nil)
102
+ self.metadata = data.fetch(:metadata, nil)
103
+ self.sandbox = data.fetch(:sandbox, nil)
104
+ self.created_at = data.fetch(:created_at, nil)
105
105
 
106
106
  end
107
107
 
@@ -114,6 +114,9 @@ module ProcessOut
114
114
  # Params:
115
115
  # +data+:: +Hash+ of data coming from the API
116
116
  def fill_with_data(data)
117
+ if data.nil?
118
+ return self
119
+ end
117
120
  if data.include? "id"
118
121
  self.id = data["id"]
119
122
  end
@@ -157,6 +160,30 @@ module ProcessOut
157
160
  self
158
161
  end
159
162
 
163
+ # Prefills the object with the data passed as Parameters
164
+ # Params:
165
+ # +data+:: +Hash+ of data
166
+ def prefill(data)
167
+ if data.nil?
168
+ return self
169
+ end
170
+ self.id = data.fetch(:id, self.id)
171
+ self.project = data.fetch(:project, self.project)
172
+ self.scheme = data.fetch(:scheme, self.scheme)
173
+ self.type = data.fetch(:type, self.type)
174
+ self.bank_name = data.fetch(:bank_name, self.bank_name)
175
+ self.brand = data.fetch(:brand, self.brand)
176
+ self.iin = data.fetch(:iin, self.iin)
177
+ self.last_4_digits = data.fetch(:last_4_digits, self.last_4_digits)
178
+ self.exp_month = data.fetch(:exp_month, self.exp_month)
179
+ self.exp_year = data.fetch(:exp_year, self.exp_year)
180
+ self.metadata = data.fetch(:metadata, self.metadata)
181
+ self.sandbox = data.fetch(:sandbox, self.sandbox)
182
+ self.created_at = data.fetch(:created_at, self.created_at)
183
+
184
+ self
185
+ end
186
+
160
187
 
161
188
  end
162
189
  end
@@ -89,19 +89,19 @@ module ProcessOut
89
89
  def initialize(client, data = {})
90
90
  @client = client
91
91
 
92
- @id = data.fetch(:id, "")
93
- @project = data.fetch(:project, nil)
94
- @name = data.fetch(:name, "")
95
- @amount_off = data.fetch(:amount_off, "")
96
- @percent_off = data.fetch(:percent_off, 0)
97
- @currency = data.fetch(:currency, "")
98
- @max_redemptions = data.fetch(:max_redemptions, 0)
99
- @expires_at = data.fetch(:expires_at, "")
100
- @metadata = data.fetch(:metadata, Hash.new)
101
- @iteration_count = data.fetch(:iteration_count, 0)
102
- @redeemed_number = data.fetch(:redeemed_number, 0)
103
- @sandbox = data.fetch(:sandbox, false)
104
- @created_at = data.fetch(:created_at, "")
92
+ self.id = data.fetch(:id, nil)
93
+ self.project = data.fetch(:project, nil)
94
+ self.name = data.fetch(:name, nil)
95
+ self.amount_off = data.fetch(:amount_off, nil)
96
+ self.percent_off = data.fetch(:percent_off, nil)
97
+ self.currency = data.fetch(:currency, nil)
98
+ self.max_redemptions = data.fetch(:max_redemptions, nil)
99
+ self.expires_at = data.fetch(:expires_at, nil)
100
+ self.metadata = data.fetch(:metadata, nil)
101
+ self.iteration_count = data.fetch(:iteration_count, nil)
102
+ self.redeemed_number = data.fetch(:redeemed_number, nil)
103
+ self.sandbox = data.fetch(:sandbox, nil)
104
+ self.created_at = data.fetch(:created_at, nil)
105
105
 
106
106
  end
107
107
 
@@ -114,6 +114,9 @@ module ProcessOut
114
114
  # Params:
115
115
  # +data+:: +Hash+ of data coming from the API
116
116
  def fill_with_data(data)
117
+ if data.nil?
118
+ return self
119
+ end
117
120
  if data.include? "id"
118
121
  self.id = data["id"]
119
122
  end
@@ -157,10 +160,36 @@ module ProcessOut
157
160
  self
158
161
  end
159
162
 
163
+ # Prefills the object with the data passed as Parameters
164
+ # Params:
165
+ # +data+:: +Hash+ of data
166
+ def prefill(data)
167
+ if data.nil?
168
+ return self
169
+ end
170
+ self.id = data.fetch(:id, self.id)
171
+ self.project = data.fetch(:project, self.project)
172
+ self.name = data.fetch(:name, self.name)
173
+ self.amount_off = data.fetch(:amount_off, self.amount_off)
174
+ self.percent_off = data.fetch(:percent_off, self.percent_off)
175
+ self.currency = data.fetch(:currency, self.currency)
176
+ self.max_redemptions = data.fetch(:max_redemptions, self.max_redemptions)
177
+ self.expires_at = data.fetch(:expires_at, self.expires_at)
178
+ self.metadata = data.fetch(:metadata, self.metadata)
179
+ self.iteration_count = data.fetch(:iteration_count, self.iteration_count)
180
+ self.redeemed_number = data.fetch(:redeemed_number, self.redeemed_number)
181
+ self.sandbox = data.fetch(:sandbox, self.sandbox)
182
+ self.created_at = data.fetch(:created_at, self.created_at)
183
+
184
+ self
185
+ end
186
+
160
187
  # Get all the coupons.
161
188
  # Params:
162
189
  # +options+:: +Hash+ of options
163
190
  def all(options = {})
191
+ self.prefill(options)
192
+
164
193
  request = Request.new(@client)
165
194
  path = "/coupons"
166
195
  data = {
@@ -189,6 +218,8 @@ module ProcessOut
189
218
  # Params:
190
219
  # +options+:: +Hash+ of options
191
220
  def create(options = {})
221
+ self.prefill(options)
222
+
192
223
  request = Request.new(@client)
193
224
  path = "/coupons"
194
225
  data = {
@@ -221,6 +252,8 @@ module ProcessOut
221
252
  # +coupon_id+:: ID of the coupon
222
253
  # +options+:: +Hash+ of options
223
254
  def find(coupon_id, options = {})
255
+ self.prefill(options)
256
+
224
257
  request = Request.new(@client)
225
258
  path = "/coupons/" + CGI.escape(coupon_id) + ""
226
259
  data = {
@@ -246,6 +279,8 @@ module ProcessOut
246
279
  # Params:
247
280
  # +options+:: +Hash+ of options
248
281
  def save(options = {})
282
+ self.prefill(options)
283
+
249
284
  request = Request.new(@client)
250
285
  path = "/coupons/" + CGI.escape(@id) + ""
251
286
  data = {
@@ -270,6 +305,8 @@ module ProcessOut
270
305
  # Params:
271
306
  # +options+:: +Hash+ of options
272
307
  def delete(options = {})
308
+ self.prefill(options)
309
+
273
310
  request = Request.new(@client)
274
311
  path = "/coupons/" + CGI.escape(@id) + ""
275
312
  data = {
@@ -21,7 +21,6 @@ module ProcessOut
21
21
  attr_reader :balance
22
22
  attr_reader :currency
23
23
  attr_reader :metadata
24
- attr_reader :has_pin
25
24
  attr_reader :sandbox
26
25
  attr_reader :created_at
27
26
 
@@ -89,10 +88,6 @@ module ProcessOut
89
88
  @metadata = val
90
89
  end
91
90
 
92
- def has_pin=(val)
93
- @has_pin = val
94
- end
95
-
96
91
  def sandbox=(val)
97
92
  @sandbox = val
98
93
  end
@@ -109,23 +104,22 @@ module ProcessOut
109
104
  def initialize(client, data = {})
110
105
  @client = client
111
106
 
112
- @id = data.fetch(:id, "")
113
- @project = data.fetch(:project, nil)
114
- @email = data.fetch(:email, "")
115
- @first_name = data.fetch(:first_name, "")
116
- @last_name = data.fetch(:last_name, "")
117
- @address1 = data.fetch(:address1, "")
118
- @address2 = data.fetch(:address2, "")
119
- @city = data.fetch(:city, "")
120
- @state = data.fetch(:state, "")
121
- @zip = data.fetch(:zip, "")
122
- @country_code = data.fetch(:country_code, "")
123
- @balance = data.fetch(:balance, "0")
124
- @currency = data.fetch(:currency, "")
125
- @metadata = data.fetch(:metadata, Hash.new)
126
- @has_pin = data.fetch(:has_pin, false)
127
- @sandbox = data.fetch(:sandbox, false)
128
- @created_at = data.fetch(:created_at, "")
107
+ self.id = data.fetch(:id, nil)
108
+ self.project = data.fetch(:project, nil)
109
+ self.email = data.fetch(:email, nil)
110
+ self.first_name = data.fetch(:first_name, nil)
111
+ self.last_name = data.fetch(:last_name, nil)
112
+ self.address1 = data.fetch(:address1, nil)
113
+ self.address2 = data.fetch(:address2, nil)
114
+ self.city = data.fetch(:city, nil)
115
+ self.state = data.fetch(:state, nil)
116
+ self.zip = data.fetch(:zip, nil)
117
+ self.country_code = data.fetch(:country_code, nil)
118
+ self.balance = data.fetch(:balance, nil)
119
+ self.currency = data.fetch(:currency, nil)
120
+ self.metadata = data.fetch(:metadata, nil)
121
+ self.sandbox = data.fetch(:sandbox, nil)
122
+ self.created_at = data.fetch(:created_at, nil)
129
123
 
130
124
  end
131
125
 
@@ -138,6 +132,9 @@ module ProcessOut
138
132
  # Params:
139
133
  # +data+:: +Hash+ of data coming from the API
140
134
  def fill_with_data(data)
135
+ if data.nil?
136
+ return self
137
+ end
141
138
  if data.include? "id"
142
139
  self.id = data["id"]
143
140
  end
@@ -180,9 +177,6 @@ module ProcessOut
180
177
  if data.include? "metadata"
181
178
  self.metadata = data["metadata"]
182
179
  end
183
- if data.include? "has_pin"
184
- self.has_pin = data["has_pin"]
185
- end
186
180
  if data.include? "sandbox"
187
181
  self.sandbox = data["sandbox"]
188
182
  end
@@ -193,10 +187,39 @@ module ProcessOut
193
187
  self
194
188
  end
195
189
 
190
+ # Prefills the object with the data passed as Parameters
191
+ # Params:
192
+ # +data+:: +Hash+ of data
193
+ def prefill(data)
194
+ if data.nil?
195
+ return self
196
+ end
197
+ self.id = data.fetch(:id, self.id)
198
+ self.project = data.fetch(:project, self.project)
199
+ self.email = data.fetch(:email, self.email)
200
+ self.first_name = data.fetch(:first_name, self.first_name)
201
+ self.last_name = data.fetch(:last_name, self.last_name)
202
+ self.address1 = data.fetch(:address1, self.address1)
203
+ self.address2 = data.fetch(:address2, self.address2)
204
+ self.city = data.fetch(:city, self.city)
205
+ self.state = data.fetch(:state, self.state)
206
+ self.zip = data.fetch(:zip, self.zip)
207
+ self.country_code = data.fetch(:country_code, self.country_code)
208
+ self.balance = data.fetch(:balance, self.balance)
209
+ self.currency = data.fetch(:currency, self.currency)
210
+ self.metadata = data.fetch(:metadata, self.metadata)
211
+ self.sandbox = data.fetch(:sandbox, self.sandbox)
212
+ self.created_at = data.fetch(:created_at, self.created_at)
213
+
214
+ self
215
+ end
216
+
196
217
  # Get the subscriptions belonging to the customer.
197
218
  # Params:
198
219
  # +options+:: +Hash+ of options
199
220
  def fetch_subscriptions(options = {})
221
+ self.prefill(options)
222
+
200
223
  request = Request.new(@client)
201
224
  path = "/customers/" + CGI.escape(@id) + "/subscriptions"
202
225
  data = {
@@ -225,6 +248,8 @@ module ProcessOut
225
248
  # Params:
226
249
  # +options+:: +Hash+ of options
227
250
  def fetch_tokens(options = {})
251
+ self.prefill(options)
252
+
228
253
  request = Request.new(@client)
229
254
  path = "/customers/" + CGI.escape(@id) + "/tokens"
230
255
  data = {
@@ -254,6 +279,8 @@ module ProcessOut
254
279
  # +token_id+:: ID of the token
255
280
  # +options+:: +Hash+ of options
256
281
  def find_token(token_id, options = {})
282
+ self.prefill(options)
283
+
257
284
  request = Request.new(@client)
258
285
  path = "/customers/" + CGI.escape(@id) + "/tokens/" + CGI.escape(token_id) + ""
259
286
  data = {
@@ -277,6 +304,8 @@ module ProcessOut
277
304
  # +token_id+:: ID of the token
278
305
  # +options+:: +Hash+ of options
279
306
  def delete_token(token_id, options = {})
307
+ self.prefill(options)
308
+
280
309
  request = Request.new(@client)
281
310
  path = "customers/" + CGI.escape(@id) + "/tokens/" + CGI.escape(token_id) + ""
282
311
  data = {
@@ -296,6 +325,8 @@ module ProcessOut
296
325
  # Params:
297
326
  # +options+:: +Hash+ of options
298
327
  def fetch_transactions(options = {})
328
+ self.prefill(options)
329
+
299
330
  request = Request.new(@client)
300
331
  path = "/customers/" + CGI.escape(@id) + "/transactions"
301
332
  data = {
@@ -324,6 +355,8 @@ module ProcessOut
324
355
  # Params:
325
356
  # +options+:: +Hash+ of options
326
357
  def all(options = {})
358
+ self.prefill(options)
359
+
327
360
  request = Request.new(@client)
328
361
  path = "/customers"
329
362
  data = {
@@ -352,6 +385,8 @@ module ProcessOut
352
385
  # Params:
353
386
  # +options+:: +Hash+ of options
354
387
  def create(options = {})
388
+ self.prefill(options)
389
+
355
390
  request = Request.new(@client)
356
391
  path = "/customers"
357
392
  data = {
@@ -388,6 +423,8 @@ module ProcessOut
388
423
  # +customer_id+:: ID of the customer
389
424
  # +options+:: +Hash+ of options
390
425
  def find(customer_id, options = {})
426
+ self.prefill(options)
427
+
391
428
  request = Request.new(@client)
392
429
  path = "/customers/" + CGI.escape(customer_id) + ""
393
430
  data = {
@@ -413,6 +450,8 @@ module ProcessOut
413
450
  # Params:
414
451
  # +options+:: +Hash+ of options
415
452
  def save(options = {})
453
+ self.prefill(options)
454
+
416
455
  request = Request.new(@client)
417
456
  path = "/customers/" + CGI.escape(@id) + ""
418
457
  data = {
@@ -447,6 +486,8 @@ module ProcessOut
447
486
  # Params:
448
487
  # +options+:: +Hash+ of options
449
488
  def delete(options = {})
489
+ self.prefill(options)
490
+
450
491
  request = Request.new(@client)
451
492
  path = "/customers/" + CGI.escape(@id) + ""
452
493
  data = {
@@ -27,8 +27,8 @@ module ProcessOut
27
27
  def initialize(client, data = {})
28
28
  @client = client
29
29
 
30
- @type = data.fetch(:type, "")
31
- @value = data.fetch(:value, "")
30
+ self.type = data.fetch(:type, nil)
31
+ self.value = data.fetch(:value, nil)
32
32
 
33
33
  end
34
34
 
@@ -41,6 +41,9 @@ module ProcessOut
41
41
  # Params:
42
42
  # +data+:: +Hash+ of data coming from the API
43
43
  def fill_with_data(data)
44
+ if data.nil?
45
+ return self
46
+ end
44
47
  if data.include? "type"
45
48
  self.type = data["type"]
46
49
  end
@@ -51,6 +54,19 @@ module ProcessOut
51
54
  self
52
55
  end
53
56
 
57
+ # Prefills the object with the data passed as Parameters
58
+ # Params:
59
+ # +data+:: +Hash+ of data
60
+ def prefill(data)
61
+ if data.nil?
62
+ return self
63
+ end
64
+ self.type = data.fetch(:type, self.type)
65
+ self.value = data.fetch(:value, self.value)
66
+
67
+ self
68
+ end
69
+
54
70
 
55
71
  end
56
72
  end