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 +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/discount.rb
CHANGED
@@ -83,15 +83,15 @@ module ProcessOut
|
|
83
83
|
def initialize(client, data = {})
|
84
84
|
@client = client
|
85
85
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
86
|
+
self.id = data.fetch(:id, nil)
|
87
|
+
self.project = data.fetch(:project, nil)
|
88
|
+
self.subscription = data.fetch(:subscription, nil)
|
89
|
+
self.coupon = data.fetch(:coupon, nil)
|
90
|
+
self.amount = data.fetch(:amount, nil)
|
91
|
+
self.expires_at = data.fetch(:expires_at, nil)
|
92
|
+
self.metadata = data.fetch(:metadata, nil)
|
93
|
+
self.sandbox = data.fetch(:sandbox, nil)
|
94
|
+
self.created_at = data.fetch(:created_at, nil)
|
95
95
|
|
96
96
|
end
|
97
97
|
|
@@ -104,6 +104,9 @@ module ProcessOut
|
|
104
104
|
# Params:
|
105
105
|
# +data+:: +Hash+ of data coming from the API
|
106
106
|
def fill_with_data(data)
|
107
|
+
if data.nil?
|
108
|
+
return self
|
109
|
+
end
|
107
110
|
if data.include? "id"
|
108
111
|
self.id = data["id"]
|
109
112
|
end
|
@@ -135,11 +138,33 @@ module ProcessOut
|
|
135
138
|
self
|
136
139
|
end
|
137
140
|
|
141
|
+
# Prefills the object with the data passed as Parameters
|
142
|
+
# Params:
|
143
|
+
# +data+:: +Hash+ of data
|
144
|
+
def prefill(data)
|
145
|
+
if data.nil?
|
146
|
+
return self
|
147
|
+
end
|
148
|
+
self.id = data.fetch(:id, self.id)
|
149
|
+
self.project = data.fetch(:project, self.project)
|
150
|
+
self.subscription = data.fetch(:subscription, self.subscription)
|
151
|
+
self.coupon = data.fetch(:coupon, self.coupon)
|
152
|
+
self.amount = data.fetch(:amount, self.amount)
|
153
|
+
self.expires_at = data.fetch(:expires_at, self.expires_at)
|
154
|
+
self.metadata = data.fetch(:metadata, self.metadata)
|
155
|
+
self.sandbox = data.fetch(:sandbox, self.sandbox)
|
156
|
+
self.created_at = data.fetch(:created_at, self.created_at)
|
157
|
+
|
158
|
+
self
|
159
|
+
end
|
160
|
+
|
138
161
|
# Apply a new discount to the given subscription ID.
|
139
162
|
# Params:
|
140
163
|
# +subscription_id+:: ID of the subscription
|
141
164
|
# +options+:: +Hash+ of options
|
142
165
|
def apply(subscription_id, options = {})
|
166
|
+
self.prefill(options)
|
167
|
+
|
143
168
|
request = Request.new(@client)
|
144
169
|
path = "/subscriptions/" + CGI.escape(subscription_id) + "/discounts"
|
145
170
|
data = {
|
@@ -168,6 +193,8 @@ module ProcessOut
|
|
168
193
|
# +coupon_id+:: ID of the coupon
|
169
194
|
# +options+:: +Hash+ of options
|
170
195
|
def apply_coupon(subscription_id, coupon_id, options = {})
|
196
|
+
self.prefill(options)
|
197
|
+
|
171
198
|
request = Request.new(@client)
|
172
199
|
path = "/subscriptions/" + CGI.escape(subscription_id) + "/discounts"
|
173
200
|
data = {
|
@@ -195,6 +222,8 @@ module ProcessOut
|
|
195
222
|
# +discount_id+:: ID of the discount
|
196
223
|
# +options+:: +Hash+ of options
|
197
224
|
def find(subscription_id, discount_id, options = {})
|
225
|
+
self.prefill(options)
|
226
|
+
|
198
227
|
request = Request.new(@client)
|
199
228
|
path = "/subscriptions/" + CGI.escape(subscription_id) + "/discounts/" + CGI.escape(discount_id) + ""
|
200
229
|
data = {
|
data/lib/processout/event.rb
CHANGED
@@ -55,12 +55,12 @@ module ProcessOut
|
|
55
55
|
def initialize(client, data = {})
|
56
56
|
@client = client
|
57
57
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
58
|
+
self.id = data.fetch(:id, nil)
|
59
|
+
self.project = data.fetch(:project, nil)
|
60
|
+
self.name = data.fetch(:name, nil)
|
61
|
+
self.data = data.fetch(:data, nil)
|
62
|
+
self.sandbox = data.fetch(:sandbox, nil)
|
63
|
+
self.fired_at = data.fetch(:fired_at, nil)
|
64
64
|
|
65
65
|
end
|
66
66
|
|
@@ -73,6 +73,9 @@ module ProcessOut
|
|
73
73
|
# Params:
|
74
74
|
# +data+:: +Hash+ of data coming from the API
|
75
75
|
def fill_with_data(data)
|
76
|
+
if data.nil?
|
77
|
+
return self
|
78
|
+
end
|
76
79
|
if data.include? "id"
|
77
80
|
self.id = data["id"]
|
78
81
|
end
|
@@ -95,10 +98,29 @@ module ProcessOut
|
|
95
98
|
self
|
96
99
|
end
|
97
100
|
|
101
|
+
# Prefills the object with the data passed as Parameters
|
102
|
+
# Params:
|
103
|
+
# +data+:: +Hash+ of data
|
104
|
+
def prefill(data)
|
105
|
+
if data.nil?
|
106
|
+
return self
|
107
|
+
end
|
108
|
+
self.id = data.fetch(:id, self.id)
|
109
|
+
self.project = data.fetch(:project, self.project)
|
110
|
+
self.name = data.fetch(:name, self.name)
|
111
|
+
self.data = data.fetch(:data, self.data)
|
112
|
+
self.sandbox = data.fetch(:sandbox, self.sandbox)
|
113
|
+
self.fired_at = data.fetch(:fired_at, self.fired_at)
|
114
|
+
|
115
|
+
self
|
116
|
+
end
|
117
|
+
|
98
118
|
# Get all the webhooks of the event.
|
99
119
|
# Params:
|
100
120
|
# +options+:: +Hash+ of options
|
101
121
|
def fetch_webhooks(options = {})
|
122
|
+
self.prefill(options)
|
123
|
+
|
102
124
|
request = Request.new(@client)
|
103
125
|
path = "/events/" + CGI.escape(@id) + "/webhooks"
|
104
126
|
data = {
|
@@ -127,6 +149,8 @@ module ProcessOut
|
|
127
149
|
# Params:
|
128
150
|
# +options+:: +Hash+ of options
|
129
151
|
def all(options = {})
|
152
|
+
self.prefill(options)
|
153
|
+
|
130
154
|
request = Request.new(@client)
|
131
155
|
path = "/events"
|
132
156
|
data = {
|
@@ -156,6 +180,8 @@ module ProcessOut
|
|
156
180
|
# +event_id+:: ID of the event
|
157
181
|
# +options+:: +Hash+ of options
|
158
182
|
def find(event_id, options = {})
|
183
|
+
self.prefill(options)
|
184
|
+
|
159
185
|
request = Request.new(@client)
|
160
186
|
path = "/events/" + CGI.escape(event_id) + ""
|
161
187
|
data = {
|
data/lib/processout/gateway.rb
CHANGED
@@ -57,14 +57,14 @@ module ProcessOut
|
|
57
57
|
def initialize(client, data = {})
|
58
58
|
@client = client
|
59
59
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
60
|
+
self.id = data.fetch(:id, nil)
|
61
|
+
self.name = data.fetch(:name, nil)
|
62
|
+
self.display_name = data.fetch(:display_name, nil)
|
63
|
+
self.logo_url = data.fetch(:logo_url, nil)
|
64
|
+
self.url = data.fetch(:url, nil)
|
65
|
+
self.flows = data.fetch(:flows, nil)
|
66
|
+
self.tags = data.fetch(:tags, nil)
|
67
|
+
self.description = data.fetch(:description, nil)
|
68
68
|
|
69
69
|
end
|
70
70
|
|
@@ -77,6 +77,9 @@ module ProcessOut
|
|
77
77
|
# Params:
|
78
78
|
# +data+:: +Hash+ of data coming from the API
|
79
79
|
def fill_with_data(data)
|
80
|
+
if data.nil?
|
81
|
+
return self
|
82
|
+
end
|
80
83
|
if data.include? "id"
|
81
84
|
self.id = data["id"]
|
82
85
|
end
|
@@ -105,6 +108,25 @@ module ProcessOut
|
|
105
108
|
self
|
106
109
|
end
|
107
110
|
|
111
|
+
# Prefills the object with the data passed as Parameters
|
112
|
+
# Params:
|
113
|
+
# +data+:: +Hash+ of data
|
114
|
+
def prefill(data)
|
115
|
+
if data.nil?
|
116
|
+
return self
|
117
|
+
end
|
118
|
+
self.id = data.fetch(:id, self.id)
|
119
|
+
self.name = data.fetch(:name, self.name)
|
120
|
+
self.display_name = data.fetch(:display_name, self.display_name)
|
121
|
+
self.logo_url = data.fetch(:logo_url, self.logo_url)
|
122
|
+
self.url = data.fetch(:url, self.url)
|
123
|
+
self.flows = data.fetch(:flows, self.flows)
|
124
|
+
self.tags = data.fetch(:tags, self.tags)
|
125
|
+
self.description = data.fetch(:description, self.description)
|
126
|
+
|
127
|
+
self
|
128
|
+
end
|
129
|
+
|
108
130
|
|
109
131
|
end
|
110
132
|
end
|
@@ -56,11 +56,11 @@ module ProcessOut
|
|
56
56
|
def initialize(client, data = {})
|
57
57
|
@client = client
|
58
58
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
59
|
+
self.id = data.fetch(:id, nil)
|
60
|
+
self.project = data.fetch(:project, nil)
|
61
|
+
self.gateway = data.fetch(:gateway, nil)
|
62
|
+
self.enabled = data.fetch(:enabled, nil)
|
63
|
+
self.public_keys = data.fetch(:public_keys, nil)
|
64
64
|
|
65
65
|
end
|
66
66
|
|
@@ -73,6 +73,9 @@ module ProcessOut
|
|
73
73
|
# Params:
|
74
74
|
# +data+:: +Hash+ of data coming from the API
|
75
75
|
def fill_with_data(data)
|
76
|
+
if data.nil?
|
77
|
+
return self
|
78
|
+
end
|
76
79
|
if data.include? "id"
|
77
80
|
self.id = data["id"]
|
78
81
|
end
|
@@ -92,6 +95,22 @@ module ProcessOut
|
|
92
95
|
self
|
93
96
|
end
|
94
97
|
|
98
|
+
# Prefills the object with the data passed as Parameters
|
99
|
+
# Params:
|
100
|
+
# +data+:: +Hash+ of data
|
101
|
+
def prefill(data)
|
102
|
+
if data.nil?
|
103
|
+
return self
|
104
|
+
end
|
105
|
+
self.id = data.fetch(:id, self.id)
|
106
|
+
self.project = data.fetch(:project, self.project)
|
107
|
+
self.gateway = data.fetch(:gateway, self.gateway)
|
108
|
+
self.enabled = data.fetch(:enabled, self.enabled)
|
109
|
+
self.public_keys = data.fetch(:public_keys, self.public_keys)
|
110
|
+
|
111
|
+
self
|
112
|
+
end
|
113
|
+
|
95
114
|
|
96
115
|
end
|
97
116
|
end
|
data/lib/processout/invoice.rb
CHANGED
@@ -125,22 +125,22 @@ module ProcessOut
|
|
125
125
|
def initialize(client, data = {})
|
126
126
|
@client = client
|
127
127
|
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
128
|
+
self.id = data.fetch(:id, nil)
|
129
|
+
self.project = data.fetch(:project, nil)
|
130
|
+
self.transaction = data.fetch(:transaction, nil)
|
131
|
+
self.customer = data.fetch(:customer, nil)
|
132
|
+
self.subscription = data.fetch(:subscription, nil)
|
133
|
+
self.url = data.fetch(:url, nil)
|
134
|
+
self.name = data.fetch(:name, nil)
|
135
|
+
self.amount = data.fetch(:amount, nil)
|
136
|
+
self.currency = data.fetch(:currency, nil)
|
137
|
+
self.metadata = data.fetch(:metadata, nil)
|
138
|
+
self.request_email = data.fetch(:request_email, nil)
|
139
|
+
self.request_shipping = data.fetch(:request_shipping, nil)
|
140
|
+
self.return_url = data.fetch(:return_url, nil)
|
141
|
+
self.cancel_url = data.fetch(:cancel_url, nil)
|
142
|
+
self.sandbox = data.fetch(:sandbox, nil)
|
143
|
+
self.created_at = data.fetch(:created_at, nil)
|
144
144
|
|
145
145
|
end
|
146
146
|
|
@@ -153,6 +153,9 @@ module ProcessOut
|
|
153
153
|
# Params:
|
154
154
|
# +data+:: +Hash+ of data coming from the API
|
155
155
|
def fill_with_data(data)
|
156
|
+
if data.nil?
|
157
|
+
return self
|
158
|
+
end
|
156
159
|
if data.include? "id"
|
157
160
|
self.id = data["id"]
|
158
161
|
end
|
@@ -205,11 +208,40 @@ module ProcessOut
|
|
205
208
|
self
|
206
209
|
end
|
207
210
|
|
211
|
+
# Prefills the object with the data passed as Parameters
|
212
|
+
# Params:
|
213
|
+
# +data+:: +Hash+ of data
|
214
|
+
def prefill(data)
|
215
|
+
if data.nil?
|
216
|
+
return self
|
217
|
+
end
|
218
|
+
self.id = data.fetch(:id, self.id)
|
219
|
+
self.project = data.fetch(:project, self.project)
|
220
|
+
self.transaction = data.fetch(:transaction, self.transaction)
|
221
|
+
self.customer = data.fetch(:customer, self.customer)
|
222
|
+
self.subscription = data.fetch(:subscription, self.subscription)
|
223
|
+
self.url = data.fetch(:url, self.url)
|
224
|
+
self.name = data.fetch(:name, self.name)
|
225
|
+
self.amount = data.fetch(:amount, self.amount)
|
226
|
+
self.currency = data.fetch(:currency, self.currency)
|
227
|
+
self.metadata = data.fetch(:metadata, self.metadata)
|
228
|
+
self.request_email = data.fetch(:request_email, self.request_email)
|
229
|
+
self.request_shipping = data.fetch(:request_shipping, self.request_shipping)
|
230
|
+
self.return_url = data.fetch(:return_url, self.return_url)
|
231
|
+
self.cancel_url = data.fetch(:cancel_url, self.cancel_url)
|
232
|
+
self.sandbox = data.fetch(:sandbox, self.sandbox)
|
233
|
+
self.created_at = data.fetch(:created_at, self.created_at)
|
234
|
+
|
235
|
+
self
|
236
|
+
end
|
237
|
+
|
208
238
|
# Authorize the invoice using the given source (customer or token)
|
209
239
|
# Params:
|
210
240
|
# +source+:: Source used to authorization the payment. Can be a card, a token or a gateway request
|
211
241
|
# +options+:: +Hash+ of options
|
212
242
|
def authorize(source, options = {})
|
243
|
+
self.prefill(options)
|
244
|
+
|
213
245
|
request = Request.new(@client)
|
214
246
|
path = "/invoices/" + CGI.escape(@id) + "/authorize"
|
215
247
|
data = {
|
@@ -233,6 +265,8 @@ module ProcessOut
|
|
233
265
|
# +source+:: Source used to authorization the payment. Can be a card, a token or a gateway request
|
234
266
|
# +options+:: +Hash+ of options
|
235
267
|
def capture(source, options = {})
|
268
|
+
self.prefill(options)
|
269
|
+
|
236
270
|
request = Request.new(@client)
|
237
271
|
path = "/invoices/" + CGI.escape(@id) + "/capture"
|
238
272
|
data = {
|
@@ -255,6 +289,8 @@ module ProcessOut
|
|
255
289
|
# Params:
|
256
290
|
# +options+:: +Hash+ of options
|
257
291
|
def fetch_customer(options = {})
|
292
|
+
self.prefill(options)
|
293
|
+
|
258
294
|
request = Request.new(@client)
|
259
295
|
path = "/invoices/" + CGI.escape(@id) + "/customers"
|
260
296
|
data = {
|
@@ -278,6 +314,8 @@ module ProcessOut
|
|
278
314
|
# +customer_id+:: ID of the customer to be linked to the invoice
|
279
315
|
# +options+:: +Hash+ of options
|
280
316
|
def assign_customer(customer_id, options = {})
|
317
|
+
self.prefill(options)
|
318
|
+
|
281
319
|
request = Request.new(@client)
|
282
320
|
path = "/invoices/" + CGI.escape(@id) + "/customers"
|
283
321
|
data = {
|
@@ -300,6 +338,8 @@ module ProcessOut
|
|
300
338
|
# Params:
|
301
339
|
# +options+:: +Hash+ of options
|
302
340
|
def fetch_transaction(options = {})
|
341
|
+
self.prefill(options)
|
342
|
+
|
303
343
|
request = Request.new(@client)
|
304
344
|
path = "/invoices/" + CGI.escape(@id) + "/transactions"
|
305
345
|
data = {
|
@@ -322,6 +362,8 @@ module ProcessOut
|
|
322
362
|
# Params:
|
323
363
|
# +options+:: +Hash+ of options
|
324
364
|
def void(options = {})
|
365
|
+
self.prefill(options)
|
366
|
+
|
325
367
|
request = Request.new(@client)
|
326
368
|
path = "/invoices/" + CGI.escape(@id) + "/void"
|
327
369
|
data = {
|
@@ -344,6 +386,8 @@ module ProcessOut
|
|
344
386
|
# Params:
|
345
387
|
# +options+:: +Hash+ of options
|
346
388
|
def all(options = {})
|
389
|
+
self.prefill(options)
|
390
|
+
|
347
391
|
request = Request.new(@client)
|
348
392
|
path = "/invoices"
|
349
393
|
data = {
|
@@ -372,6 +416,8 @@ module ProcessOut
|
|
372
416
|
# Params:
|
373
417
|
# +options+:: +Hash+ of options
|
374
418
|
def create(options = {})
|
419
|
+
self.prefill(options)
|
420
|
+
|
375
421
|
request = Request.new(@client)
|
376
422
|
path = "/invoices"
|
377
423
|
data = {
|
@@ -404,6 +450,8 @@ module ProcessOut
|
|
404
450
|
# +customer_id+:: ID of the customer
|
405
451
|
# +options+:: +Hash+ of options
|
406
452
|
def create_for_customer(customer_id, options = {})
|
453
|
+
self.prefill(options)
|
454
|
+
|
407
455
|
request = Request.new(@client)
|
408
456
|
path = "/invoices"
|
409
457
|
data = {
|
@@ -437,6 +485,8 @@ module ProcessOut
|
|
437
485
|
# +invoice_id+:: ID of the invoice
|
438
486
|
# +options+:: +Hash+ of options
|
439
487
|
def find(invoice_id, options = {})
|
488
|
+
self.prefill(options)
|
489
|
+
|
440
490
|
request = Request.new(@client)
|
441
491
|
path = "/invoices/" + CGI.escape(invoice_id) + ""
|
442
492
|
data = {
|
data/lib/processout/plan.rb
CHANGED
@@ -84,18 +84,18 @@ module ProcessOut
|
|
84
84
|
def initialize(client, data = {})
|
85
85
|
@client = client
|
86
86
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
87
|
+
self.id = data.fetch(:id, nil)
|
88
|
+
self.project = data.fetch(:project, nil)
|
89
|
+
self.name = data.fetch(:name, nil)
|
90
|
+
self.amount = data.fetch(:amount, nil)
|
91
|
+
self.currency = data.fetch(:currency, nil)
|
92
|
+
self.metadata = data.fetch(:metadata, nil)
|
93
|
+
self.interval = data.fetch(:interval, nil)
|
94
|
+
self.trial_period = data.fetch(:trial_period, nil)
|
95
|
+
self.return_url = data.fetch(:return_url, nil)
|
96
|
+
self.cancel_url = data.fetch(:cancel_url, nil)
|
97
|
+
self.sandbox = data.fetch(:sandbox, nil)
|
98
|
+
self.created_at = data.fetch(:created_at, nil)
|
99
99
|
|
100
100
|
end
|
101
101
|
|
@@ -108,6 +108,9 @@ module ProcessOut
|
|
108
108
|
# Params:
|
109
109
|
# +data+:: +Hash+ of data coming from the API
|
110
110
|
def fill_with_data(data)
|
111
|
+
if data.nil?
|
112
|
+
return self
|
113
|
+
end
|
111
114
|
if data.include? "id"
|
112
115
|
self.id = data["id"]
|
113
116
|
end
|
@@ -148,10 +151,35 @@ module ProcessOut
|
|
148
151
|
self
|
149
152
|
end
|
150
153
|
|
154
|
+
# Prefills the object with the data passed as Parameters
|
155
|
+
# Params:
|
156
|
+
# +data+:: +Hash+ of data
|
157
|
+
def prefill(data)
|
158
|
+
if data.nil?
|
159
|
+
return self
|
160
|
+
end
|
161
|
+
self.id = data.fetch(:id, self.id)
|
162
|
+
self.project = data.fetch(:project, self.project)
|
163
|
+
self.name = data.fetch(:name, self.name)
|
164
|
+
self.amount = data.fetch(:amount, self.amount)
|
165
|
+
self.currency = data.fetch(:currency, self.currency)
|
166
|
+
self.metadata = data.fetch(:metadata, self.metadata)
|
167
|
+
self.interval = data.fetch(:interval, self.interval)
|
168
|
+
self.trial_period = data.fetch(:trial_period, self.trial_period)
|
169
|
+
self.return_url = data.fetch(:return_url, self.return_url)
|
170
|
+
self.cancel_url = data.fetch(:cancel_url, self.cancel_url)
|
171
|
+
self.sandbox = data.fetch(:sandbox, self.sandbox)
|
172
|
+
self.created_at = data.fetch(:created_at, self.created_at)
|
173
|
+
|
174
|
+
self
|
175
|
+
end
|
176
|
+
|
151
177
|
# Get all the plans.
|
152
178
|
# Params:
|
153
179
|
# +options+:: +Hash+ of options
|
154
180
|
def all(options = {})
|
181
|
+
self.prefill(options)
|
182
|
+
|
155
183
|
request = Request.new(@client)
|
156
184
|
path = "/plans"
|
157
185
|
data = {
|
@@ -180,6 +208,8 @@ module ProcessOut
|
|
180
208
|
# Params:
|
181
209
|
# +options+:: +Hash+ of options
|
182
210
|
def create(options = {})
|
211
|
+
self.prefill(options)
|
212
|
+
|
183
213
|
request = Request.new(@client)
|
184
214
|
path = "/plans"
|
185
215
|
data = {
|
@@ -213,6 +243,8 @@ module ProcessOut
|
|
213
243
|
# +plan_id+:: ID of the plan
|
214
244
|
# +options+:: +Hash+ of options
|
215
245
|
def find(plan_id, options = {})
|
246
|
+
self.prefill(options)
|
247
|
+
|
216
248
|
request = Request.new(@client)
|
217
249
|
path = "/plans/" + CGI.escape(plan_id) + ""
|
218
250
|
data = {
|
@@ -234,10 +266,12 @@ module ProcessOut
|
|
234
266
|
return_values[0]
|
235
267
|
end
|
236
268
|
|
237
|
-
#
|
269
|
+
# Save the updated plan attributes. This action won't affect subscriptions already linked to this plan.
|
238
270
|
# Params:
|
239
271
|
# +options+:: +Hash+ of options
|
240
|
-
def
|
272
|
+
def save(options = {})
|
273
|
+
self.prefill(options)
|
274
|
+
|
241
275
|
request = Request.new(@client)
|
242
276
|
path = "/plans/" + CGI.escape(@id) + ""
|
243
277
|
data = {
|
@@ -266,6 +300,8 @@ module ProcessOut
|
|
266
300
|
# Params:
|
267
301
|
# +options+:: +Hash+ of options
|
268
302
|
def end(options = {})
|
303
|
+
self.prefill(options)
|
304
|
+
|
269
305
|
request = Request.new(@client)
|
270
306
|
path = "/plans/" + CGI.escape(@id) + ""
|
271
307
|
data = {
|
data/lib/processout/product.rb
CHANGED
@@ -89,19 +89,19 @@ module ProcessOut
|
|
89
89
|
def initialize(client, data = {})
|
90
90
|
@client = client
|
91
91
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
92
|
+
self.id = data.fetch(:id, nil)
|
93
|
+
self.project = data.fetch(:project, nil)
|
94
|
+
self.url = data.fetch(:url, nil)
|
95
|
+
self.name = data.fetch(:name, nil)
|
96
|
+
self.amount = data.fetch(:amount, nil)
|
97
|
+
self.currency = data.fetch(:currency, nil)
|
98
|
+
self.metadata = data.fetch(:metadata, nil)
|
99
|
+
self.request_email = data.fetch(:request_email, nil)
|
100
|
+
self.request_shipping = data.fetch(:request_shipping, nil)
|
101
|
+
self.return_url = data.fetch(:return_url, nil)
|
102
|
+
self.cancel_url = data.fetch(:cancel_url, 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.url = data.fetch(:url, self.url)
|
173
|
+
self.name = data.fetch(:name, self.name)
|
174
|
+
self.amount = data.fetch(:amount, self.amount)
|
175
|
+
self.currency = data.fetch(:currency, self.currency)
|
176
|
+
self.metadata = data.fetch(:metadata, self.metadata)
|
177
|
+
self.request_email = data.fetch(:request_email, self.request_email)
|
178
|
+
self.request_shipping = data.fetch(:request_shipping, self.request_shipping)
|
179
|
+
self.return_url = data.fetch(:return_url, self.return_url)
|
180
|
+
self.cancel_url = data.fetch(:cancel_url, self.cancel_url)
|
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
|
# Create a new invoice from the product.
|
161
188
|
# Params:
|
162
189
|
# +options+:: +Hash+ of options
|
163
190
|
def create_invoice(options = {})
|
191
|
+
self.prefill(options)
|
192
|
+
|
164
193
|
request = Request.new(@client)
|
165
194
|
path = "/products/" + CGI.escape(@id) + "/invoices"
|
166
195
|
data = {
|
@@ -183,6 +212,8 @@ module ProcessOut
|
|
183
212
|
# Params:
|
184
213
|
# +options+:: +Hash+ of options
|
185
214
|
def all(options = {})
|
215
|
+
self.prefill(options)
|
216
|
+
|
186
217
|
request = Request.new(@client)
|
187
218
|
path = "/products"
|
188
219
|
data = {
|
@@ -211,6 +242,8 @@ module ProcessOut
|
|
211
242
|
# Params:
|
212
243
|
# +options+:: +Hash+ of options
|
213
244
|
def create(options = {})
|
245
|
+
self.prefill(options)
|
246
|
+
|
214
247
|
request = Request.new(@client)
|
215
248
|
path = "/products"
|
216
249
|
data = {
|
@@ -243,6 +276,8 @@ module ProcessOut
|
|
243
276
|
# +product_id+:: ID of the product
|
244
277
|
# +options+:: +Hash+ of options
|
245
278
|
def find(product_id, options = {})
|
279
|
+
self.prefill(options)
|
280
|
+
|
246
281
|
request = Request.new(@client)
|
247
282
|
path = "/products/" + CGI.escape(product_id) + ""
|
248
283
|
data = {
|
@@ -268,6 +303,8 @@ module ProcessOut
|
|
268
303
|
# Params:
|
269
304
|
# +options+:: +Hash+ of options
|
270
305
|
def save(options = {})
|
306
|
+
self.prefill(options)
|
307
|
+
|
271
308
|
request = Request.new(@client)
|
272
309
|
path = "/products/" + CGI.escape(@id) + ""
|
273
310
|
data = {
|
@@ -299,6 +336,8 @@ module ProcessOut
|
|
299
336
|
# Params:
|
300
337
|
# +options+:: +Hash+ of options
|
301
338
|
def delete(options = {})
|
339
|
+
self.prefill(options)
|
340
|
+
|
302
341
|
request = Request.new(@client)
|
303
342
|
path = "/products/" + CGI.escape(@id) + ""
|
304
343
|
data = {
|