processout 2.20.0 → 2.21.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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +52 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Dockerfile +7 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/Makefile +4 -0
  9. data/README.md +12 -0
  10. data/Rakefile +6 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/lib/processout/activity.rb +206 -0
  14. data/lib/processout/addon.rb +401 -0
  15. data/lib/processout/alternative_merchant_certificate.rb +115 -0
  16. data/lib/processout/api_request.rb +295 -0
  17. data/lib/processout/api_version.rb +92 -0
  18. data/lib/processout/apple_pay_alternative_merchant_certificates.rb +121 -0
  19. data/lib/processout/balance.rb +92 -0
  20. data/lib/processout/balances.rb +111 -0
  21. data/lib/processout/card.rb +503 -0
  22. data/lib/processout/card_information.rb +164 -0
  23. data/lib/processout/coupon.rb +352 -0
  24. data/lib/processout/customer.rb +755 -0
  25. data/lib/processout/customer_action.rb +81 -0
  26. data/lib/processout/discount.rb +360 -0
  27. data/lib/processout/dunning_action.rb +81 -0
  28. data/lib/processout/errors/authentication_error.rb +9 -0
  29. data/lib/processout/errors/generic_error.rb +9 -0
  30. data/lib/processout/errors/internal_error.rb +9 -0
  31. data/lib/processout/errors/notfound_error.rb +9 -0
  32. data/lib/processout/errors/validation_error.rb +9 -0
  33. data/lib/processout/event.rb +237 -0
  34. data/lib/processout/gateway.rb +210 -0
  35. data/lib/processout/gateway_configuration.rb +346 -0
  36. data/lib/processout/gateway_request.rb +26 -0
  37. data/lib/processout/invoice.rb +984 -0
  38. data/lib/processout/invoice_detail.rb +235 -0
  39. data/lib/processout/invoice_device.rb +92 -0
  40. data/lib/processout/invoice_external_fraud_tools.rb +70 -0
  41. data/lib/processout/invoice_risk.rb +81 -0
  42. data/lib/processout/invoice_shipping.rb +202 -0
  43. data/lib/processout/invoice_tax.rb +81 -0
  44. data/lib/processout/networking/request.rb +102 -0
  45. data/lib/processout/networking/response.rb +67 -0
  46. data/lib/processout/payment_data_network_authentication.rb +70 -0
  47. data/lib/processout/payment_data_three_ds_authentication.rb +70 -0
  48. data/lib/processout/payment_data_three_ds_request.rb +103 -0
  49. data/lib/processout/payout.rb +379 -0
  50. data/lib/processout/payout_item.rb +238 -0
  51. data/lib/processout/plan.rb +368 -0
  52. data/lib/processout/product.rb +368 -0
  53. data/lib/processout/project.rb +353 -0
  54. data/lib/processout/refund.rb +277 -0
  55. data/lib/processout/subscription.rb +910 -0
  56. data/lib/processout/three_ds.rb +158 -0
  57. data/lib/processout/token.rb +493 -0
  58. data/lib/processout/transaction.rb +905 -0
  59. data/lib/processout/transaction_operation.rb +418 -0
  60. data/lib/processout/version.rb +3 -0
  61. data/lib/processout/webhook.rb +237 -0
  62. data/lib/processout/webhook_endpoint.rb +149 -0
  63. data/lib/processout.rb +263 -0
  64. data/processout.gemspec +26 -0
  65. metadata +66 -3
@@ -0,0 +1,235 @@
1
+ # The content of this file was automatically generated
2
+
3
+ require "cgi"
4
+ require "json"
5
+ require "processout/networking/request"
6
+ require "processout/networking/response"
7
+
8
+ module ProcessOut
9
+ class InvoiceDetail
10
+
11
+ attr_reader :id
12
+ attr_reader :name
13
+ attr_reader :type
14
+ attr_reader :amount
15
+ attr_reader :quantity
16
+ attr_reader :metadata
17
+ attr_reader :reference
18
+ attr_reader :description
19
+ attr_reader :brand
20
+ attr_reader :model
21
+ attr_reader :discount_amount
22
+ attr_reader :condition
23
+ attr_reader :marketplace_merchant
24
+ attr_reader :marketplace_merchant_is_business
25
+ attr_reader :marketplace_merchant_created_at
26
+ attr_reader :category
27
+
28
+
29
+ def id=(val)
30
+ @id = val
31
+ end
32
+
33
+ def name=(val)
34
+ @name = val
35
+ end
36
+
37
+ def type=(val)
38
+ @type = val
39
+ end
40
+
41
+ def amount=(val)
42
+ @amount = val
43
+ end
44
+
45
+ def quantity=(val)
46
+ @quantity = val
47
+ end
48
+
49
+ def metadata=(val)
50
+ @metadata = val
51
+ end
52
+
53
+ def reference=(val)
54
+ @reference = val
55
+ end
56
+
57
+ def description=(val)
58
+ @description = val
59
+ end
60
+
61
+ def brand=(val)
62
+ @brand = val
63
+ end
64
+
65
+ def model=(val)
66
+ @model = val
67
+ end
68
+
69
+ def discount_amount=(val)
70
+ @discount_amount = val
71
+ end
72
+
73
+ def condition=(val)
74
+ @condition = val
75
+ end
76
+
77
+ def marketplace_merchant=(val)
78
+ @marketplace_merchant = val
79
+ end
80
+
81
+ def marketplace_merchant_is_business=(val)
82
+ @marketplace_merchant_is_business = val
83
+ end
84
+
85
+ def marketplace_merchant_created_at=(val)
86
+ @marketplace_merchant_created_at = val
87
+ end
88
+
89
+ def category=(val)
90
+ @category = val
91
+ end
92
+
93
+
94
+ # Initializes the InvoiceDetail object
95
+ # Params:
96
+ # +client+:: +ProcessOut+ client instance
97
+ # +data+:: data that can be used to fill the object
98
+ def initialize(client, data = {})
99
+ @client = client
100
+
101
+ self.id = data.fetch(:id, nil)
102
+ self.name = data.fetch(:name, nil)
103
+ self.type = data.fetch(:type, nil)
104
+ self.amount = data.fetch(:amount, nil)
105
+ self.quantity = data.fetch(:quantity, nil)
106
+ self.metadata = data.fetch(:metadata, nil)
107
+ self.reference = data.fetch(:reference, nil)
108
+ self.description = data.fetch(:description, nil)
109
+ self.brand = data.fetch(:brand, nil)
110
+ self.model = data.fetch(:model, nil)
111
+ self.discount_amount = data.fetch(:discount_amount, nil)
112
+ self.condition = data.fetch(:condition, nil)
113
+ self.marketplace_merchant = data.fetch(:marketplace_merchant, nil)
114
+ self.marketplace_merchant_is_business = data.fetch(:marketplace_merchant_is_business, nil)
115
+ self.marketplace_merchant_created_at = data.fetch(:marketplace_merchant_created_at, nil)
116
+ self.category = data.fetch(:category, nil)
117
+
118
+ end
119
+
120
+ # Create a new InvoiceDetail using the current client
121
+ def new(data = {})
122
+ InvoiceDetail.new(@client, data)
123
+ end
124
+
125
+ # Overrides the JSON marshaller to only send the fields we want
126
+ def to_json(options)
127
+ {
128
+ "id": self.id,
129
+ "name": self.name,
130
+ "type": self.type,
131
+ "amount": self.amount,
132
+ "quantity": self.quantity,
133
+ "metadata": self.metadata,
134
+ "reference": self.reference,
135
+ "description": self.description,
136
+ "brand": self.brand,
137
+ "model": self.model,
138
+ "discount_amount": self.discount_amount,
139
+ "condition": self.condition,
140
+ "marketplace_merchant": self.marketplace_merchant,
141
+ "marketplace_merchant_is_business": self.marketplace_merchant_is_business,
142
+ "marketplace_merchant_created_at": self.marketplace_merchant_created_at,
143
+ "category": self.category,
144
+ }.to_json
145
+ end
146
+
147
+ # Fills the object with data coming from the API
148
+ # Params:
149
+ # +data+:: +Hash+ of data coming from the API
150
+ def fill_with_data(data)
151
+ if data.nil?
152
+ return self
153
+ end
154
+ if data.include? "id"
155
+ self.id = data["id"]
156
+ end
157
+ if data.include? "name"
158
+ self.name = data["name"]
159
+ end
160
+ if data.include? "type"
161
+ self.type = data["type"]
162
+ end
163
+ if data.include? "amount"
164
+ self.amount = data["amount"]
165
+ end
166
+ if data.include? "quantity"
167
+ self.quantity = data["quantity"]
168
+ end
169
+ if data.include? "metadata"
170
+ self.metadata = data["metadata"]
171
+ end
172
+ if data.include? "reference"
173
+ self.reference = data["reference"]
174
+ end
175
+ if data.include? "description"
176
+ self.description = data["description"]
177
+ end
178
+ if data.include? "brand"
179
+ self.brand = data["brand"]
180
+ end
181
+ if data.include? "model"
182
+ self.model = data["model"]
183
+ end
184
+ if data.include? "discount_amount"
185
+ self.discount_amount = data["discount_amount"]
186
+ end
187
+ if data.include? "condition"
188
+ self.condition = data["condition"]
189
+ end
190
+ if data.include? "marketplace_merchant"
191
+ self.marketplace_merchant = data["marketplace_merchant"]
192
+ end
193
+ if data.include? "marketplace_merchant_is_business"
194
+ self.marketplace_merchant_is_business = data["marketplace_merchant_is_business"]
195
+ end
196
+ if data.include? "marketplace_merchant_created_at"
197
+ self.marketplace_merchant_created_at = data["marketplace_merchant_created_at"]
198
+ end
199
+ if data.include? "category"
200
+ self.category = data["category"]
201
+ end
202
+
203
+ self
204
+ end
205
+
206
+ # Prefills the object with the data passed as parameters
207
+ # Params:
208
+ # +data+:: +Hash+ of data
209
+ def prefill(data)
210
+ if data.nil?
211
+ return self
212
+ end
213
+ self.id = data.fetch(:id, self.id)
214
+ self.name = data.fetch(:name, self.name)
215
+ self.type = data.fetch(:type, self.type)
216
+ self.amount = data.fetch(:amount, self.amount)
217
+ self.quantity = data.fetch(:quantity, self.quantity)
218
+ self.metadata = data.fetch(:metadata, self.metadata)
219
+ self.reference = data.fetch(:reference, self.reference)
220
+ self.description = data.fetch(:description, self.description)
221
+ self.brand = data.fetch(:brand, self.brand)
222
+ self.model = data.fetch(:model, self.model)
223
+ self.discount_amount = data.fetch(:discount_amount, self.discount_amount)
224
+ self.condition = data.fetch(:condition, self.condition)
225
+ self.marketplace_merchant = data.fetch(:marketplace_merchant, self.marketplace_merchant)
226
+ self.marketplace_merchant_is_business = data.fetch(:marketplace_merchant_is_business, self.marketplace_merchant_is_business)
227
+ self.marketplace_merchant_created_at = data.fetch(:marketplace_merchant_created_at, self.marketplace_merchant_created_at)
228
+ self.category = data.fetch(:category, self.category)
229
+
230
+ self
231
+ end
232
+
233
+
234
+ end
235
+ end
@@ -0,0 +1,92 @@
1
+ # The content of this file was automatically generated
2
+
3
+ require "cgi"
4
+ require "json"
5
+ require "processout/networking/request"
6
+ require "processout/networking/response"
7
+
8
+ module ProcessOut
9
+ class InvoiceDevice
10
+
11
+ attr_reader :channel
12
+ attr_reader :ip_address
13
+ attr_reader :id
14
+
15
+
16
+ def channel=(val)
17
+ @channel = val
18
+ end
19
+
20
+ def ip_address=(val)
21
+ @ip_address = val
22
+ end
23
+
24
+ def id=(val)
25
+ @id = val
26
+ end
27
+
28
+
29
+ # Initializes the InvoiceDevice object
30
+ # Params:
31
+ # +client+:: +ProcessOut+ client instance
32
+ # +data+:: data that can be used to fill the object
33
+ def initialize(client, data = {})
34
+ @client = client
35
+
36
+ self.channel = data.fetch(:channel, nil)
37
+ self.ip_address = data.fetch(:ip_address, nil)
38
+ self.id = data.fetch(:id, nil)
39
+
40
+ end
41
+
42
+ # Create a new InvoiceDevice using the current client
43
+ def new(data = {})
44
+ InvoiceDevice.new(@client, data)
45
+ end
46
+
47
+ # Overrides the JSON marshaller to only send the fields we want
48
+ def to_json(options)
49
+ {
50
+ "channel": self.channel,
51
+ "ip_address": self.ip_address,
52
+ "id": self.id,
53
+ }.to_json
54
+ end
55
+
56
+ # Fills the object with data coming from the API
57
+ # Params:
58
+ # +data+:: +Hash+ of data coming from the API
59
+ def fill_with_data(data)
60
+ if data.nil?
61
+ return self
62
+ end
63
+ if data.include? "channel"
64
+ self.channel = data["channel"]
65
+ end
66
+ if data.include? "ip_address"
67
+ self.ip_address = data["ip_address"]
68
+ end
69
+ if data.include? "id"
70
+ self.id = data["id"]
71
+ end
72
+
73
+ self
74
+ end
75
+
76
+ # Prefills the object with the data passed as parameters
77
+ # Params:
78
+ # +data+:: +Hash+ of data
79
+ def prefill(data)
80
+ if data.nil?
81
+ return self
82
+ end
83
+ self.channel = data.fetch(:channel, self.channel)
84
+ self.ip_address = data.fetch(:ip_address, self.ip_address)
85
+ self.id = data.fetch(:id, self.id)
86
+
87
+ self
88
+ end
89
+
90
+
91
+ end
92
+ end
@@ -0,0 +1,70 @@
1
+ # The content of this file was automatically generated
2
+
3
+ require "cgi"
4
+ require "json"
5
+ require "processout/networking/request"
6
+ require "processout/networking/response"
7
+
8
+ module ProcessOut
9
+ class InvoiceExternalFraudTools
10
+
11
+ attr_reader :forter
12
+
13
+
14
+ def forter=(val)
15
+ @forter = val
16
+ end
17
+
18
+
19
+ # Initializes the InvoiceExternalFraudTools object
20
+ # Params:
21
+ # +client+:: +ProcessOut+ client instance
22
+ # +data+:: data that can be used to fill the object
23
+ def initialize(client, data = {})
24
+ @client = client
25
+
26
+ self.forter = data.fetch(:forter, nil)
27
+
28
+ end
29
+
30
+ # Create a new InvoiceExternalFraudTools using the current client
31
+ def new(data = {})
32
+ InvoiceExternalFraudTools.new(@client, data)
33
+ end
34
+
35
+ # Overrides the JSON marshaller to only send the fields we want
36
+ def to_json(options)
37
+ {
38
+ "forter": self.forter,
39
+ }.to_json
40
+ end
41
+
42
+ # Fills the object with data coming from the API
43
+ # Params:
44
+ # +data+:: +Hash+ of data coming from the API
45
+ def fill_with_data(data)
46
+ if data.nil?
47
+ return self
48
+ end
49
+ if data.include? "forter"
50
+ self.forter = data["forter"]
51
+ end
52
+
53
+ self
54
+ end
55
+
56
+ # Prefills the object with the data passed as parameters
57
+ # Params:
58
+ # +data+:: +Hash+ of data
59
+ def prefill(data)
60
+ if data.nil?
61
+ return self
62
+ end
63
+ self.forter = data.fetch(:forter, self.forter)
64
+
65
+ self
66
+ end
67
+
68
+
69
+ end
70
+ end
@@ -0,0 +1,81 @@
1
+ # The content of this file was automatically generated
2
+
3
+ require "cgi"
4
+ require "json"
5
+ require "processout/networking/request"
6
+ require "processout/networking/response"
7
+
8
+ module ProcessOut
9
+ class InvoiceRisk
10
+
11
+ attr_reader :score
12
+ attr_reader :is_legit
13
+
14
+
15
+ def score=(val)
16
+ @score = val
17
+ end
18
+
19
+ def is_legit=(val)
20
+ @is_legit = val
21
+ end
22
+
23
+
24
+ # Initializes the InvoiceRisk object
25
+ # Params:
26
+ # +client+:: +ProcessOut+ client instance
27
+ # +data+:: data that can be used to fill the object
28
+ def initialize(client, data = {})
29
+ @client = client
30
+
31
+ self.score = data.fetch(:score, nil)
32
+ self.is_legit = data.fetch(:is_legit, nil)
33
+
34
+ end
35
+
36
+ # Create a new InvoiceRisk using the current client
37
+ def new(data = {})
38
+ InvoiceRisk.new(@client, data)
39
+ end
40
+
41
+ # Overrides the JSON marshaller to only send the fields we want
42
+ def to_json(options)
43
+ {
44
+ "score": self.score,
45
+ "is_legit": self.is_legit,
46
+ }.to_json
47
+ end
48
+
49
+ # Fills the object with data coming from the API
50
+ # Params:
51
+ # +data+:: +Hash+ of data coming from the API
52
+ def fill_with_data(data)
53
+ if data.nil?
54
+ return self
55
+ end
56
+ if data.include? "score"
57
+ self.score = data["score"]
58
+ end
59
+ if data.include? "is_legit"
60
+ self.is_legit = data["is_legit"]
61
+ end
62
+
63
+ self
64
+ end
65
+
66
+ # Prefills the object with the data passed as parameters
67
+ # Params:
68
+ # +data+:: +Hash+ of data
69
+ def prefill(data)
70
+ if data.nil?
71
+ return self
72
+ end
73
+ self.score = data.fetch(:score, self.score)
74
+ self.is_legit = data.fetch(:is_legit, self.is_legit)
75
+
76
+ self
77
+ end
78
+
79
+
80
+ end
81
+ end
@@ -0,0 +1,202 @@
1
+ # The content of this file was automatically generated
2
+
3
+ require "cgi"
4
+ require "json"
5
+ require "processout/networking/request"
6
+ require "processout/networking/response"
7
+
8
+ module ProcessOut
9
+ class InvoiceShipping
10
+
11
+ attr_reader :amount
12
+ attr_reader :method
13
+ attr_reader :provider
14
+ attr_reader :delay
15
+ attr_reader :address1
16
+ attr_reader :address2
17
+ attr_reader :city
18
+ attr_reader :state
19
+ attr_reader :country_code
20
+ attr_reader :zip
21
+ attr_reader :phone_number
22
+ attr_reader :expects_shipping_at
23
+ attr_reader :relay_store_name
24
+
25
+
26
+ def amount=(val)
27
+ @amount = val
28
+ end
29
+
30
+ def method=(val)
31
+ @method = val
32
+ end
33
+
34
+ def provider=(val)
35
+ @provider = val
36
+ end
37
+
38
+ def delay=(val)
39
+ @delay = val
40
+ end
41
+
42
+ def address1=(val)
43
+ @address1 = val
44
+ end
45
+
46
+ def address2=(val)
47
+ @address2 = val
48
+ end
49
+
50
+ def city=(val)
51
+ @city = val
52
+ end
53
+
54
+ def state=(val)
55
+ @state = val
56
+ end
57
+
58
+ def country_code=(val)
59
+ @country_code = val
60
+ end
61
+
62
+ def zip=(val)
63
+ @zip = val
64
+ end
65
+
66
+ def phone_number=(val)
67
+ @phone_number = val
68
+ end
69
+
70
+ def expects_shipping_at=(val)
71
+ @expects_shipping_at = val
72
+ end
73
+
74
+ def relay_store_name=(val)
75
+ @relay_store_name = val
76
+ end
77
+
78
+
79
+ # Initializes the InvoiceShipping object
80
+ # Params:
81
+ # +client+:: +ProcessOut+ client instance
82
+ # +data+:: data that can be used to fill the object
83
+ def initialize(client, data = {})
84
+ @client = client
85
+
86
+ self.amount = data.fetch(:amount, nil)
87
+ self.method = data.fetch(:method, nil)
88
+ self.provider = data.fetch(:provider, nil)
89
+ self.delay = data.fetch(:delay, nil)
90
+ self.address1 = data.fetch(:address1, nil)
91
+ self.address2 = data.fetch(:address2, nil)
92
+ self.city = data.fetch(:city, nil)
93
+ self.state = data.fetch(:state, nil)
94
+ self.country_code = data.fetch(:country_code, nil)
95
+ self.zip = data.fetch(:zip, nil)
96
+ self.phone_number = data.fetch(:phone_number, nil)
97
+ self.expects_shipping_at = data.fetch(:expects_shipping_at, nil)
98
+ self.relay_store_name = data.fetch(:relay_store_name, nil)
99
+
100
+ end
101
+
102
+ # Create a new InvoiceShipping using the current client
103
+ def new(data = {})
104
+ InvoiceShipping.new(@client, data)
105
+ end
106
+
107
+ # Overrides the JSON marshaller to only send the fields we want
108
+ def to_json(options)
109
+ {
110
+ "amount": self.amount,
111
+ "method": self.method,
112
+ "provider": self.provider,
113
+ "delay": self.delay,
114
+ "address1": self.address1,
115
+ "address2": self.address2,
116
+ "city": self.city,
117
+ "state": self.state,
118
+ "country_code": self.country_code,
119
+ "zip": self.zip,
120
+ "phone_number": self.phone_number,
121
+ "expects_shipping_at": self.expects_shipping_at,
122
+ "relay_store_name": self.relay_store_name,
123
+ }.to_json
124
+ end
125
+
126
+ # Fills the object with data coming from the API
127
+ # Params:
128
+ # +data+:: +Hash+ of data coming from the API
129
+ def fill_with_data(data)
130
+ if data.nil?
131
+ return self
132
+ end
133
+ if data.include? "amount"
134
+ self.amount = data["amount"]
135
+ end
136
+ if data.include? "method"
137
+ self.method = data["method"]
138
+ end
139
+ if data.include? "provider"
140
+ self.provider = data["provider"]
141
+ end
142
+ if data.include? "delay"
143
+ self.delay = data["delay"]
144
+ end
145
+ if data.include? "address1"
146
+ self.address1 = data["address1"]
147
+ end
148
+ if data.include? "address2"
149
+ self.address2 = data["address2"]
150
+ end
151
+ if data.include? "city"
152
+ self.city = data["city"]
153
+ end
154
+ if data.include? "state"
155
+ self.state = data["state"]
156
+ end
157
+ if data.include? "country_code"
158
+ self.country_code = data["country_code"]
159
+ end
160
+ if data.include? "zip"
161
+ self.zip = data["zip"]
162
+ end
163
+ if data.include? "phone_number"
164
+ self.phone_number = data["phone_number"]
165
+ end
166
+ if data.include? "expects_shipping_at"
167
+ self.expects_shipping_at = data["expects_shipping_at"]
168
+ end
169
+ if data.include? "relay_store_name"
170
+ self.relay_store_name = data["relay_store_name"]
171
+ end
172
+
173
+ self
174
+ end
175
+
176
+ # Prefills the object with the data passed as parameters
177
+ # Params:
178
+ # +data+:: +Hash+ of data
179
+ def prefill(data)
180
+ if data.nil?
181
+ return self
182
+ end
183
+ self.amount = data.fetch(:amount, self.amount)
184
+ self.method = data.fetch(:method, self.method)
185
+ self.provider = data.fetch(:provider, self.provider)
186
+ self.delay = data.fetch(:delay, self.delay)
187
+ self.address1 = data.fetch(:address1, self.address1)
188
+ self.address2 = data.fetch(:address2, self.address2)
189
+ self.city = data.fetch(:city, self.city)
190
+ self.state = data.fetch(:state, self.state)
191
+ self.country_code = data.fetch(:country_code, self.country_code)
192
+ self.zip = data.fetch(:zip, self.zip)
193
+ self.phone_number = data.fetch(:phone_number, self.phone_number)
194
+ self.expects_shipping_at = data.fetch(:expects_shipping_at, self.expects_shipping_at)
195
+ self.relay_store_name = data.fetch(:relay_store_name, self.relay_store_name)
196
+
197
+ self
198
+ end
199
+
200
+
201
+ end
202
+ end