processout 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/processout/addon.rb +35 -7
- data/lib/processout/authorization_request.rb +3 -4
- data/lib/processout/discount.rb +35 -7
- data/lib/processout/refund.rb +34 -4
- data/lib/processout/subscription.rb +10 -12
- data/lib/processout/token.rb +25 -27
- data/lib/processout/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1dfc5c9143608ff2b9a9e47e25041fe53dd3315d
|
4
|
+
data.tar.gz: 4c5818c8200cf39015db82492096c4ff675f1bbb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c96b4796d8d8236ce7df7836b4990b5759dae5c0db3ef8e6eaac5bb254eff48583efd1f001b07097a6b175247885101c0fcfd1197dcbb50e01c93ff6a5c460bc
|
7
|
+
data.tar.gz: ace0dc350ffe37846d1a2131c3a12d341bbf5e44bafb36e9199ae6f6c57a77102d162b7dc38a8b48aac4ddb2d8b86f17aaf06c20be0846f670586dcb320201e5
|
data/lib/processout/addon.rb
CHANGED
@@ -223,15 +223,45 @@ module ProcessOut
|
|
223
223
|
self
|
224
224
|
end
|
225
225
|
|
226
|
-
#
|
226
|
+
# Get the addons applied to the subscription.
|
227
227
|
# Params:
|
228
228
|
# +subscription_id+:: ID of the subscription
|
229
229
|
# +options+:: +Hash+ of options
|
230
|
-
def
|
230
|
+
def fetch_subscription_addons(subscription_id, options = {})
|
231
231
|
self.prefill(options)
|
232
232
|
|
233
233
|
request = Request.new(@client)
|
234
234
|
path = "/subscriptions/" + CGI.escape(subscription_id) + "/addons"
|
235
|
+
data = {
|
236
|
+
|
237
|
+
}
|
238
|
+
|
239
|
+
response = Response.new(request.get(path, data, options))
|
240
|
+
return_values = Array.new
|
241
|
+
|
242
|
+
a = Array.new
|
243
|
+
body = response.body
|
244
|
+
for v in body['addons']
|
245
|
+
tmp = Addon.new(@client)
|
246
|
+
tmp.fill_with_data(v)
|
247
|
+
a.push(tmp)
|
248
|
+
end
|
249
|
+
|
250
|
+
return_values.push(a)
|
251
|
+
|
252
|
+
|
253
|
+
|
254
|
+
return_values[0]
|
255
|
+
end
|
256
|
+
|
257
|
+
# Create a new addon to the given subscription ID.
|
258
|
+
# Params:
|
259
|
+
# +options+:: +Hash+ of options
|
260
|
+
def create(options = {})
|
261
|
+
self.prefill(options)
|
262
|
+
|
263
|
+
request = Request.new(@client)
|
264
|
+
path = "/subscriptions/" + CGI.escape(@subscription_id) + "/addons"
|
235
265
|
data = {
|
236
266
|
"plan_id" => @plan_id,
|
237
267
|
"type" => @type,
|
@@ -322,16 +352,14 @@ module ProcessOut
|
|
322
352
|
return_values[0]
|
323
353
|
end
|
324
354
|
|
325
|
-
#
|
355
|
+
# Delete an addon applied to a subscription.
|
326
356
|
# Params:
|
327
|
-
# +subscription_id+:: ID of the subscription on which the addon was applied
|
328
|
-
# +addon_id+:: ID of the addon
|
329
357
|
# +options+:: +Hash+ of options
|
330
|
-
def
|
358
|
+
def delete(options = {})
|
331
359
|
self.prefill(options)
|
332
360
|
|
333
361
|
request = Request.new(@client)
|
334
|
-
path = "/subscriptions/" + CGI.escape(subscription_id) + "/addons/" + CGI.escape(
|
362
|
+
path = "/subscriptions/" + CGI.escape(@subscription_id) + "/addons/" + CGI.escape(@id) + ""
|
335
363
|
data = {
|
336
364
|
"prorate" => options.fetch(:prorate, nil),
|
337
365
|
"proration_date" => options.fetch(:proration_date, nil),
|
@@ -259,19 +259,18 @@ module ProcessOut
|
|
259
259
|
|
260
260
|
# Create a new authorization request for the given customer ID.
|
261
261
|
# Params:
|
262
|
-
# +customer_id+:: ID of the customer
|
263
262
|
# +options+:: +Hash+ of options
|
264
|
-
def create(
|
263
|
+
def create(options = {})
|
265
264
|
self.prefill(options)
|
266
265
|
|
267
266
|
request = Request.new(@client)
|
268
267
|
path = "/authorization-requests"
|
269
268
|
data = {
|
269
|
+
"customer_id" => @customer_id,
|
270
270
|
"name" => @name,
|
271
271
|
"currency" => @currency,
|
272
272
|
"return_url" => @return_url,
|
273
|
-
"cancel_url" => @cancel_url
|
274
|
-
"customer_id" => customer_id
|
273
|
+
"cancel_url" => @cancel_url
|
275
274
|
}
|
276
275
|
|
277
276
|
response = Response.new(request.post(path, data, options))
|
data/lib/processout/discount.rb
CHANGED
@@ -223,15 +223,45 @@ module ProcessOut
|
|
223
223
|
self
|
224
224
|
end
|
225
225
|
|
226
|
-
#
|
226
|
+
# Get the discounts applied to the subscription.
|
227
227
|
# Params:
|
228
228
|
# +subscription_id+:: ID of the subscription
|
229
229
|
# +options+:: +Hash+ of options
|
230
|
-
def
|
230
|
+
def fetch_subscription_discounts(subscription_id, options = {})
|
231
231
|
self.prefill(options)
|
232
232
|
|
233
233
|
request = Request.new(@client)
|
234
234
|
path = "/subscriptions/" + CGI.escape(subscription_id) + "/discounts"
|
235
|
+
data = {
|
236
|
+
|
237
|
+
}
|
238
|
+
|
239
|
+
response = Response.new(request.get(path, data, options))
|
240
|
+
return_values = Array.new
|
241
|
+
|
242
|
+
a = Array.new
|
243
|
+
body = response.body
|
244
|
+
for v in body['discounts']
|
245
|
+
tmp = Discount.new(@client)
|
246
|
+
tmp.fill_with_data(v)
|
247
|
+
a.push(tmp)
|
248
|
+
end
|
249
|
+
|
250
|
+
return_values.push(a)
|
251
|
+
|
252
|
+
|
253
|
+
|
254
|
+
return_values[0]
|
255
|
+
end
|
256
|
+
|
257
|
+
# Create a new discount for the given subscription ID.
|
258
|
+
# Params:
|
259
|
+
# +options+:: +Hash+ of options
|
260
|
+
def create(options = {})
|
261
|
+
self.prefill(options)
|
262
|
+
|
263
|
+
request = Request.new(@client)
|
264
|
+
path = "/subscriptions/" + CGI.escape(@subscription_id) + "/discounts"
|
235
265
|
data = {
|
236
266
|
"coupon_id" => @coupon_id,
|
237
267
|
"name" => @name,
|
@@ -283,16 +313,14 @@ module ProcessOut
|
|
283
313
|
return_values[0]
|
284
314
|
end
|
285
315
|
|
286
|
-
#
|
316
|
+
# Delete a discount applied to a subscription.
|
287
317
|
# Params:
|
288
|
-
# +subscription_id+:: ID of the subscription on which the discount was applied
|
289
|
-
# +discount_id+:: ID of the discount
|
290
318
|
# +options+:: +Hash+ of options
|
291
|
-
def
|
319
|
+
def delete(options = {})
|
292
320
|
self.prefill(options)
|
293
321
|
|
294
322
|
request = Request.new(@client)
|
295
|
-
path = "/subscriptions/" + CGI.escape(subscription_id) + "/discounts/" + CGI.escape(
|
323
|
+
path = "/subscriptions/" + CGI.escape(@subscription_id) + "/discounts/" + CGI.escape(@id) + ""
|
296
324
|
data = {
|
297
325
|
|
298
326
|
}
|
data/lib/processout/refund.rb
CHANGED
@@ -159,6 +159,37 @@ module ProcessOut
|
|
159
159
|
self
|
160
160
|
end
|
161
161
|
|
162
|
+
# Get the transaction's refunds.
|
163
|
+
# Params:
|
164
|
+
# +transaction_id+:: ID of the transaction
|
165
|
+
# +options+:: +Hash+ of options
|
166
|
+
def fetch_transaction_refunds(transaction_id, options = {})
|
167
|
+
self.prefill(options)
|
168
|
+
|
169
|
+
request = Request.new(@client)
|
170
|
+
path = "/transactions/" + CGI.escape(transaction_id) + "/refunds"
|
171
|
+
data = {
|
172
|
+
|
173
|
+
}
|
174
|
+
|
175
|
+
response = Response.new(request.get(path, data, options))
|
176
|
+
return_values = Array.new
|
177
|
+
|
178
|
+
a = Array.new
|
179
|
+
body = response.body
|
180
|
+
for v in body['refunds']
|
181
|
+
tmp = Refund.new(@client)
|
182
|
+
tmp.fill_with_data(v)
|
183
|
+
a.push(tmp)
|
184
|
+
end
|
185
|
+
|
186
|
+
return_values.push(a)
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
return_values[0]
|
191
|
+
end
|
192
|
+
|
162
193
|
# Find a transaction's refund by its ID.
|
163
194
|
# Params:
|
164
195
|
# +transaction_id+:: ID of the transaction on which the refund was applied
|
@@ -188,15 +219,14 @@ module ProcessOut
|
|
188
219
|
return_values[0]
|
189
220
|
end
|
190
221
|
|
191
|
-
#
|
222
|
+
# Create a refund for a transaction.
|
192
223
|
# Params:
|
193
|
-
# +transaction_id+:: ID of the transaction
|
194
224
|
# +options+:: +Hash+ of options
|
195
|
-
def
|
225
|
+
def create(options = {})
|
196
226
|
self.prefill(options)
|
197
227
|
|
198
228
|
request = Request.new(@client)
|
199
|
-
path = "/transactions/" + CGI.escape(transaction_id) + "/refunds"
|
229
|
+
path = "/transactions/" + CGI.escape(@transaction_id) + "/refunds"
|
200
230
|
data = {
|
201
231
|
"amount" => @amount,
|
202
232
|
"metadata" => @metadata,
|
@@ -548,11 +548,11 @@ module ProcessOut
|
|
548
548
|
return_values[0]
|
549
549
|
end
|
550
550
|
|
551
|
-
#
|
551
|
+
# Delete an addon applied to a subscription.
|
552
552
|
# Params:
|
553
553
|
# +addon_id+:: ID of the addon or plan to be removed from the subscription
|
554
554
|
# +options+:: +Hash+ of options
|
555
|
-
def
|
555
|
+
def delete_addon(addon_id, options = {})
|
556
556
|
self.prefill(options)
|
557
557
|
|
558
558
|
request = Request.new(@client)
|
@@ -651,11 +651,11 @@ module ProcessOut
|
|
651
651
|
return_values[0]
|
652
652
|
end
|
653
653
|
|
654
|
-
#
|
654
|
+
# Delete a discount applied to a subscription.
|
655
655
|
# Params:
|
656
656
|
# +discount_id+:: ID of the discount or coupon to be removed from the subscription
|
657
657
|
# +options+:: +Hash+ of options
|
658
|
-
def
|
658
|
+
def delete_discount(discount_id, options = {})
|
659
659
|
self.prefill(options)
|
660
660
|
|
661
661
|
request = Request.new(@client)
|
@@ -735,9 +735,8 @@ module ProcessOut
|
|
735
735
|
|
736
736
|
# Create a new subscription for the given customer.
|
737
737
|
# Params:
|
738
|
-
# +customer_id+:: ID of the customer
|
739
738
|
# +options+:: +Hash+ of options
|
740
|
-
def create(
|
739
|
+
def create(options = {})
|
741
740
|
self.prefill(options)
|
742
741
|
|
743
742
|
request = Request.new(@client)
|
@@ -751,11 +750,11 @@ module ProcessOut
|
|
751
750
|
"metadata" => @metadata,
|
752
751
|
"interval" => @interval,
|
753
752
|
"trial_end_at" => @trial_end_at,
|
753
|
+
"customer_id" => @customer_id,
|
754
754
|
"return_url" => @return_url,
|
755
755
|
"cancel_url" => @cancel_url,
|
756
756
|
"source" => options.fetch(:source, nil),
|
757
|
-
"coupon_id" => options.fetch(:coupon_id, nil)
|
758
|
-
"customer_id" => customer_id
|
757
|
+
"coupon_id" => options.fetch(:coupon_id, nil)
|
759
758
|
}
|
760
759
|
|
761
760
|
response = Response.new(request.post(path, data, options))
|
@@ -838,17 +837,16 @@ module ProcessOut
|
|
838
837
|
|
839
838
|
# Cancel a subscription. The reason may be provided as well.
|
840
839
|
# Params:
|
841
|
-
# +cancellation_reason+:: Cancellation reason
|
842
840
|
# +options+:: +Hash+ of options
|
843
|
-
def cancel(
|
841
|
+
def cancel(options = {})
|
844
842
|
self.prefill(options)
|
845
843
|
|
846
844
|
request = Request.new(@client)
|
847
845
|
path = "/subscriptions/" + CGI.escape(@id) + ""
|
848
846
|
data = {
|
849
847
|
"cancel_at" => @cancel_at,
|
850
|
-
"
|
851
|
-
"
|
848
|
+
"cancellation_reason" => @cancellation_reason,
|
849
|
+
"cancel_at_end" => options.fetch(:cancel_at_end, nil)
|
852
850
|
}
|
853
851
|
|
854
852
|
response = Response.new(request.delete(path, data, options))
|
data/lib/processout/token.rb
CHANGED
@@ -203,16 +203,15 @@ module ProcessOut
|
|
203
203
|
self
|
204
204
|
end
|
205
205
|
|
206
|
-
#
|
206
|
+
# Get the customer's tokens.
|
207
207
|
# Params:
|
208
208
|
# +customer_id+:: ID of the customer
|
209
|
-
# +token_id+:: ID of the token
|
210
209
|
# +options+:: +Hash+ of options
|
211
|
-
def
|
210
|
+
def fetch_customer_tokens(customer_id, options = {})
|
212
211
|
self.prefill(options)
|
213
212
|
|
214
213
|
request = Request.new(@client)
|
215
|
-
path = "/customers/" + CGI.escape(customer_id) + "/tokens
|
214
|
+
path = "/customers/" + CGI.escape(customer_id) + "/tokens"
|
216
215
|
data = {
|
217
216
|
|
218
217
|
}
|
@@ -220,65 +219,64 @@ module ProcessOut
|
|
220
219
|
response = Response.new(request.get(path, data, options))
|
221
220
|
return_values = Array.new
|
222
221
|
|
222
|
+
a = Array.new
|
223
223
|
body = response.body
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
224
|
+
for v in body['tokens']
|
225
|
+
tmp = Token.new(@client)
|
226
|
+
tmp.fill_with_data(v)
|
227
|
+
a.push(tmp)
|
228
|
+
end
|
229
|
+
|
230
|
+
return_values.push(a)
|
229
231
|
|
230
232
|
|
231
233
|
|
232
234
|
return_values[0]
|
233
235
|
end
|
234
236
|
|
235
|
-
#
|
237
|
+
# Find a customer's token by its ID.
|
236
238
|
# Params:
|
237
239
|
# +customer_id+:: ID of the customer
|
238
|
-
# +
|
240
|
+
# +token_id+:: ID of the token
|
239
241
|
# +options+:: +Hash+ of options
|
240
|
-
def
|
242
|
+
def find(customer_id, token_id, options = {})
|
241
243
|
self.prefill(options)
|
242
244
|
|
243
245
|
request = Request.new(@client)
|
244
|
-
path = "/customers/" + CGI.escape(customer_id) + "/tokens"
|
246
|
+
path = "/customers/" + CGI.escape(customer_id) + "/tokens/" + CGI.escape(token_id) + ""
|
245
247
|
data = {
|
246
|
-
|
247
|
-
"settings" => options.fetch(:settings, nil),
|
248
|
-
"target" => options.fetch(:target, nil),
|
249
|
-
"source" => source
|
248
|
+
|
250
249
|
}
|
251
250
|
|
252
|
-
response = Response.new(request.
|
251
|
+
response = Response.new(request.get(path, data, options))
|
253
252
|
return_values = Array.new
|
254
253
|
|
255
254
|
body = response.body
|
256
255
|
body = body["token"]
|
257
256
|
|
258
257
|
|
259
|
-
|
258
|
+
obj = Token.new(@client)
|
259
|
+
return_values.push(obj.fill_with_data(body))
|
260
260
|
|
261
261
|
|
262
262
|
|
263
263
|
return_values[0]
|
264
264
|
end
|
265
265
|
|
266
|
-
# Create a new token for the given customer ID
|
266
|
+
# Create a new token for the given customer ID.
|
267
267
|
# Params:
|
268
|
-
# +customer_id+:: ID of the customer
|
269
|
-
# +source+:: Source used to create the token (most likely a card token generated by ProcessOut.js)
|
270
|
-
# +target+:: Authorization request ID
|
271
268
|
# +options+:: +Hash+ of options
|
272
|
-
def
|
269
|
+
def create(options = {})
|
273
270
|
self.prefill(options)
|
274
271
|
|
275
272
|
request = Request.new(@client)
|
276
|
-
path = "/customers/" + CGI.escape(customer_id) + "/tokens"
|
273
|
+
path = "/customers/" + CGI.escape(@customer_id) + "/tokens"
|
277
274
|
data = {
|
278
275
|
"metadata" => @metadata,
|
276
|
+
"source" => options.fetch(:source, nil),
|
279
277
|
"settings" => options.fetch(:settings, nil),
|
280
|
-
"
|
281
|
-
"
|
278
|
+
"target" => options.fetch(:target, nil),
|
279
|
+
"set_default" => options.fetch(:set_default, nil)
|
282
280
|
}
|
283
281
|
|
284
282
|
response = Response.new(request.post(path, data, options))
|
data/lib/processout/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: processout
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Manuel HUEZ
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|