processout 2.13.0 → 2.14.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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/lib/processout/activity.rb +14 -0
  3. data/lib/processout/addon.rb +21 -0
  4. data/lib/processout/api_request.rb +21 -0
  5. data/lib/processout/api_version.rb +10 -0
  6. data/lib/processout/card.rb +36 -0
  7. data/lib/processout/card_information.rb +14 -0
  8. data/lib/processout/coupon.rb +20 -0
  9. data/lib/processout/customer.rb +34 -22
  10. data/lib/processout/customer_action.rb +9 -0
  11. data/lib/processout/discount.rb +21 -0
  12. data/lib/processout/dunning_action.rb +9 -0
  13. data/lib/processout/event.rb +14 -0
  14. data/lib/processout/gateway.rb +18 -0
  15. data/lib/processout/gateway_configuration.rb +18 -0
  16. data/lib/processout/invoice.rb +43 -1
  17. data/lib/processout/invoice_detail.rb +22 -0
  18. data/lib/processout/invoice_device.rb +9 -0
  19. data/lib/processout/invoice_risk.rb +9 -0
  20. data/lib/processout/invoice_shipping.rb +19 -0
  21. data/lib/processout/networking/request.rb +1 -1
  22. data/lib/processout/payment_data_network_authentication.rb +8 -0
  23. data/lib/processout/payment_data_three_ds_authentication.rb +8 -0
  24. data/lib/processout/payment_data_three_ds_request.rb +11 -0
  25. data/lib/processout/payout.rb +27 -0
  26. data/lib/processout/payout_item.rb +20 -0
  27. data/lib/processout/plan.rb +21 -0
  28. data/lib/processout/product.rb +19 -0
  29. data/lib/processout/project.rb +18 -27
  30. data/lib/processout/refund.rb +17 -0
  31. data/lib/processout/subscription.rb +42 -0
  32. data/lib/processout/token.rb +39 -33
  33. data/lib/processout/transaction.rb +57 -0
  34. data/lib/processout/transaction_operation.rb +52 -0
  35. data/lib/processout/version.rb +1 -1
  36. data/lib/processout/webhook.rb +21 -0
  37. data/lib/processout/webhook_endpoint.rb +14 -0
  38. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a8593863f0a7ec4d99571878ebde67d93c4b2eda
4
- data.tar.gz: 5eaef54475cf967ab8cd2b98271c4a1edde2126f
3
+ metadata.gz: 7d68d0e527f0cbbdd9c3b1e68b3fd75dc1829598
4
+ data.tar.gz: c3c6e7907bfba348e34dc198be5e455997a349e1
5
5
  SHA512:
6
- metadata.gz: 46a2c4add75d72c200f3a85c265044511eeb6e2efafdce439f785e5dce9b51854c585a6ca9e597f3ca8a7d7453f657d369ad3dac96d98bb2dc00c3728c084640
7
- data.tar.gz: 226e89146f82b210ee93778b73a3f84cafbdf94ec255445eb8779f9f67eca7aa49a9f4876a2ad93edfc15fadd1b87942fa621546e728dd90c6ddfb65c514caba
6
+ metadata.gz: e880634f0c9053438bcf4dc40e0ecdd70d517112f62fb1f6af25f12d8c1f4b787e304a319b1dfc57e4aedb12e9c0a2c9e98eb60add9f1c2b11dc6f1acb558348
7
+ data.tar.gz: d01b3b05bac7bc683eabf4dd6cc85cb0f985210e9c2400ef718e0984293ad6f83caa7bde1f59b82158e5a994a1611533ae600533a73630fa2c736f32239168f8
@@ -1,6 +1,7 @@
1
1
  # The content of this file was automatically generated
2
2
 
3
3
  require "cgi"
4
+ require "json"
4
5
  require "processout/networking/request"
5
6
  require "processout/networking/response"
6
7
 
@@ -79,6 +80,19 @@ module ProcessOut
79
80
  Activity.new(@client, data)
80
81
  end
81
82
 
83
+ # Overrides the JSON marshaller to only send the fields we want
84
+ def to_json(options)
85
+ {
86
+ "id": self.id,
87
+ "project": self.project,
88
+ "project_id": self.project_id,
89
+ "title": self.title,
90
+ "content": self.content,
91
+ "level": self.level,
92
+ "created_at": self.created_at,
93
+ }.to_json
94
+ end
95
+
82
96
  # Fills the object with data coming from the API
83
97
  # Params:
84
98
  # +data+:: +Hash+ of data coming from the API
@@ -1,6 +1,7 @@
1
1
  # The content of this file was automatically generated
2
2
 
3
3
  require "cgi"
4
+ require "json"
4
5
  require "processout/networking/request"
5
6
  require "processout/networking/response"
6
7
 
@@ -145,6 +146,26 @@ module ProcessOut
145
146
  Addon.new(@client, data)
146
147
  end
147
148
 
149
+ # Overrides the JSON marshaller to only send the fields we want
150
+ def to_json(options)
151
+ {
152
+ "id": self.id,
153
+ "project": self.project,
154
+ "project_id": self.project_id,
155
+ "subscription": self.subscription,
156
+ "subscription_id": self.subscription_id,
157
+ "plan": self.plan,
158
+ "plan_id": self.plan_id,
159
+ "type": self.type,
160
+ "name": self.name,
161
+ "amount": self.amount,
162
+ "quantity": self.quantity,
163
+ "metadata": self.metadata,
164
+ "sandbox": self.sandbox,
165
+ "created_at": self.created_at,
166
+ }.to_json
167
+ end
168
+
148
169
  # Fills the object with data coming from the API
149
170
  # Params:
150
171
  # +data+:: +Hash+ of data coming from the API
@@ -1,6 +1,7 @@
1
1
  # The content of this file was automatically generated
2
2
 
3
3
  require "cgi"
4
+ require "json"
4
5
  require "processout/networking/request"
5
6
  require "processout/networking/response"
6
7
 
@@ -133,6 +134,26 @@ module ProcessOut
133
134
  APIRequest.new(@client, data)
134
135
  end
135
136
 
137
+ # Overrides the JSON marshaller to only send the fields we want
138
+ def to_json(options)
139
+ {
140
+ "id": self.id,
141
+ "project": self.project,
142
+ "api_version": self.api_version,
143
+ "idempotency_key": self.idempotency_key,
144
+ "url": self.url,
145
+ "method": self.method,
146
+ "headers": self.headers,
147
+ "body": self.body,
148
+ "response_code": self.response_code,
149
+ "response_headers": self.response_headers,
150
+ "response_body": self.response_body,
151
+ "response_ms": self.response_ms,
152
+ "sandbox": self.sandbox,
153
+ "created_at": self.created_at,
154
+ }.to_json
155
+ end
156
+
136
157
  # Fills the object with data coming from the API
137
158
  # Params:
138
159
  # +data+:: +Hash+ of data coming from the API
@@ -1,6 +1,7 @@
1
1
  # The content of this file was automatically generated
2
2
 
3
3
  require "cgi"
4
+ require "json"
4
5
  require "processout/networking/request"
5
6
  require "processout/networking/response"
6
7
 
@@ -43,6 +44,15 @@ module ProcessOut
43
44
  APIVersion.new(@client, data)
44
45
  end
45
46
 
47
+ # Overrides the JSON marshaller to only send the fields we want
48
+ def to_json(options)
49
+ {
50
+ "name": self.name,
51
+ "description": self.description,
52
+ "created_at": self.created_at,
53
+ }.to_json
54
+ end
55
+
46
56
  # Fills the object with data coming from the API
47
57
  # Params:
48
58
  # +data+:: +Hash+ of data coming from the API
@@ -1,6 +1,7 @@
1
1
  # The content of this file was automatically generated
2
2
 
3
3
  require "cgi"
4
+ require "json"
4
5
  require "processout/networking/request"
5
6
  require "processout/networking/response"
6
7
 
@@ -223,6 +224,41 @@ module ProcessOut
223
224
  Card.new(@client, data)
224
225
  end
225
226
 
227
+ # Overrides the JSON marshaller to only send the fields we want
228
+ def to_json(options)
229
+ {
230
+ "id": self.id,
231
+ "project": self.project,
232
+ "project_id": self.project_id,
233
+ "token": self.token,
234
+ "scheme": self.scheme,
235
+ "co_scheme": self.co_scheme,
236
+ "preferred_scheme": self.preferred_scheme,
237
+ "type": self.type,
238
+ "bank_name": self.bank_name,
239
+ "brand": self.brand,
240
+ "iin": self.iin,
241
+ "last_4_digits": self.last_4_digits,
242
+ "exp_month": self.exp_month,
243
+ "exp_year": self.exp_year,
244
+ "cvc_check": self.cvc_check,
245
+ "avs_check": self.avs_check,
246
+ "name": self.name,
247
+ "address1": self.address1,
248
+ "address2": self.address2,
249
+ "city": self.city,
250
+ "state": self.state,
251
+ "zip": self.zip,
252
+ "country_code": self.country_code,
253
+ "ip_address": self.ip_address,
254
+ "fingerprint": self.fingerprint,
255
+ "metadata": self.metadata,
256
+ "expires_soon": self.expires_soon,
257
+ "sandbox": self.sandbox,
258
+ "created_at": self.created_at,
259
+ }.to_json
260
+ end
261
+
226
262
  # Fills the object with data coming from the API
227
263
  # Params:
228
264
  # +data+:: +Hash+ of data coming from the API
@@ -1,6 +1,7 @@
1
1
  # The content of this file was automatically generated
2
2
 
3
3
  require "cgi"
4
+ require "json"
4
5
  require "processout/networking/request"
5
6
  require "processout/networking/response"
6
7
 
@@ -67,6 +68,19 @@ module ProcessOut
67
68
  CardInformation.new(@client, data)
68
69
  end
69
70
 
71
+ # Overrides the JSON marshaller to only send the fields we want
72
+ def to_json(options)
73
+ {
74
+ "iin": self.iin,
75
+ "scheme": self.scheme,
76
+ "type": self.type,
77
+ "bank_name": self.bank_name,
78
+ "brand": self.brand,
79
+ "category": self.category,
80
+ "country": self.country,
81
+ }.to_json
82
+ end
83
+
70
84
  # Fills the object with data coming from the API
71
85
  # Params:
72
86
  # +data+:: +Hash+ of data coming from the API
@@ -1,6 +1,7 @@
1
1
  # The content of this file was automatically generated
2
2
 
3
3
  require "cgi"
4
+ require "json"
4
5
  require "processout/networking/request"
5
6
  require "processout/networking/response"
6
7
 
@@ -115,6 +116,25 @@ module ProcessOut
115
116
  Coupon.new(@client, data)
116
117
  end
117
118
 
119
+ # Overrides the JSON marshaller to only send the fields we want
120
+ def to_json(options)
121
+ {
122
+ "id": self.id,
123
+ "project": self.project,
124
+ "project_id": self.project_id,
125
+ "amount_off": self.amount_off,
126
+ "percent_off": self.percent_off,
127
+ "currency": self.currency,
128
+ "iteration_count": self.iteration_count,
129
+ "max_redemptions": self.max_redemptions,
130
+ "expires_at": self.expires_at,
131
+ "metadata": self.metadata,
132
+ "redeemed_number": self.redeemed_number,
133
+ "sandbox": self.sandbox,
134
+ "created_at": self.created_at,
135
+ }.to_json
136
+ end
137
+
118
138
  # Fills the object with data coming from the API
119
139
  # Params:
120
140
  # +data+:: +Hash+ of data coming from the API
@@ -1,6 +1,7 @@
1
1
  # The content of this file was automatically generated
2
2
 
3
3
  require "cgi"
4
+ require "json"
4
5
  require "processout/networking/request"
5
6
  require "processout/networking/response"
6
7
 
@@ -259,6 +260,39 @@ module ProcessOut
259
260
  Customer.new(@client, data)
260
261
  end
261
262
 
263
+ # Overrides the JSON marshaller to only send the fields we want
264
+ def to_json(options)
265
+ {
266
+ "id": self.id,
267
+ "project": self.project,
268
+ "project_id": self.project_id,
269
+ "default_token": self.default_token,
270
+ "default_token_id": self.default_token_id,
271
+ "tokens": self.tokens,
272
+ "subscriptions": self.subscriptions,
273
+ "transactions": self.transactions,
274
+ "balance": self.balance,
275
+ "currency": self.currency,
276
+ "email": self.email,
277
+ "first_name": self.first_name,
278
+ "last_name": self.last_name,
279
+ "address1": self.address1,
280
+ "address2": self.address2,
281
+ "city": self.city,
282
+ "state": self.state,
283
+ "zip": self.zip,
284
+ "country_code": self.country_code,
285
+ "ip_address": self.ip_address,
286
+ "phone_number": self.phone_number,
287
+ "legal_document": self.legal_document,
288
+ "sex": self.sex,
289
+ "is_business": self.is_business,
290
+ "metadata": self.metadata,
291
+ "sandbox": self.sandbox,
292
+ "created_at": self.created_at,
293
+ }.to_json
294
+ end
295
+
262
296
  # Fills the object with data coming from the API
263
297
  # Params:
264
298
  # +data+:: +Hash+ of data coming from the API
@@ -416,28 +450,6 @@ module ProcessOut
416
450
 
417
451
 
418
452
 
419
- return_values[0]
420
- end
421
-
422
- # Verify a customer token's card is valid.
423
- # Params:
424
- # +token_id+:: ID of the token
425
- # +options+:: +Hash+ of options
426
- def verify_token(token_id, options = {})
427
- self.prefill(options)
428
-
429
- request = Request.new(@client)
430
- path = "/customers/" + CGI.escape(@id) + "/tokens/" + CGI.escape(token_id) + "/verify"
431
- data = {
432
-
433
- }
434
-
435
- response = Response.new(request.post(path, data, options))
436
- return_values = Array.new
437
-
438
- return_values.push(response.success)
439
-
440
-
441
453
  return_values[0]
442
454
  end
443
455
 
@@ -1,6 +1,7 @@
1
1
  # The content of this file was automatically generated
2
2
 
3
3
  require "cgi"
4
+ require "json"
4
5
  require "processout/networking/request"
5
6
  require "processout/networking/response"
6
7
 
@@ -37,6 +38,14 @@ module ProcessOut
37
38
  CustomerAction.new(@client, data)
38
39
  end
39
40
 
41
+ # Overrides the JSON marshaller to only send the fields we want
42
+ def to_json(options)
43
+ {
44
+ "type": self.type,
45
+ "value": self.value,
46
+ }.to_json
47
+ end
48
+
40
49
  # Fills the object with data coming from the API
41
50
  # Params:
42
51
  # +data+:: +Hash+ of data coming from the API
@@ -1,6 +1,7 @@
1
1
  # The content of this file was automatically generated
2
2
 
3
3
  require "cgi"
4
+ require "json"
4
5
  require "processout/networking/request"
5
6
  require "processout/networking/response"
6
7
 
@@ -145,6 +146,26 @@ module ProcessOut
145
146
  Discount.new(@client, data)
146
147
  end
147
148
 
149
+ # Overrides the JSON marshaller to only send the fields we want
150
+ def to_json(options)
151
+ {
152
+ "id": self.id,
153
+ "project": self.project,
154
+ "project_id": self.project_id,
155
+ "subscription": self.subscription,
156
+ "subscription_id": self.subscription_id,
157
+ "coupon": self.coupon,
158
+ "coupon_id": self.coupon_id,
159
+ "name": self.name,
160
+ "amount": self.amount,
161
+ "percent": self.percent,
162
+ "expires_at": self.expires_at,
163
+ "metadata": self.metadata,
164
+ "sandbox": self.sandbox,
165
+ "created_at": self.created_at,
166
+ }.to_json
167
+ end
168
+
148
169
  # Fills the object with data coming from the API
149
170
  # Params:
150
171
  # +data+:: +Hash+ of data coming from the API
@@ -1,6 +1,7 @@
1
1
  # The content of this file was automatically generated
2
2
 
3
3
  require "cgi"
4
+ require "json"
4
5
  require "processout/networking/request"
5
6
  require "processout/networking/response"
6
7
 
@@ -37,6 +38,14 @@ module ProcessOut
37
38
  DunningAction.new(@client, data)
38
39
  end
39
40
 
41
+ # Overrides the JSON marshaller to only send the fields we want
42
+ def to_json(options)
43
+ {
44
+ "action": self.action,
45
+ "delay_in_days": self.delay_in_days,
46
+ }.to_json
47
+ end
48
+
40
49
  # Fills the object with data coming from the API
41
50
  # Params:
42
51
  # +data+:: +Hash+ of data coming from the API
@@ -1,6 +1,7 @@
1
1
  # The content of this file was automatically generated
2
2
 
3
3
  require "cgi"
4
+ require "json"
4
5
  require "processout/networking/request"
5
6
  require "processout/networking/response"
6
7
 
@@ -80,6 +81,19 @@ module ProcessOut
80
81
  Event.new(@client, data)
81
82
  end
82
83
 
84
+ # Overrides the JSON marshaller to only send the fields we want
85
+ def to_json(options)
86
+ {
87
+ "id": self.id,
88
+ "project": self.project,
89
+ "project_id": self.project_id,
90
+ "name": self.name,
91
+ "data": self.data,
92
+ "sandbox": self.sandbox,
93
+ "fired_at": self.fired_at,
94
+ }.to_json
95
+ end
96
+
83
97
  # Fills the object with data coming from the API
84
98
  # Params:
85
99
  # +data+:: +Hash+ of data coming from the API
@@ -1,6 +1,7 @@
1
1
  # The content of this file was automatically generated
2
2
 
3
3
  require "cgi"
4
+ require "json"
4
5
  require "processout/networking/request"
5
6
  require "processout/networking/response"
6
7
 
@@ -91,6 +92,23 @@ module ProcessOut
91
92
  Gateway.new(@client, data)
92
93
  end
93
94
 
95
+ # Overrides the JSON marshaller to only send the fields we want
96
+ def to_json(options)
97
+ {
98
+ "id": self.id,
99
+ "name": self.name,
100
+ "display_name": self.display_name,
101
+ "logo_url": self.logo_url,
102
+ "url": self.url,
103
+ "flows": self.flows,
104
+ "tags": self.tags,
105
+ "can_pull_transactions": self.can_pull_transactions,
106
+ "can_refund": self.can_refund,
107
+ "is_oauth_authentication": self.is_oauth_authentication,
108
+ "description": self.description,
109
+ }.to_json
110
+ end
111
+
94
112
  # Fills the object with data coming from the API
95
113
  # Params:
96
114
  # +data+:: +Hash+ of data coming from the API