processout 2.20.0 → 2.22.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/.gitignore +52 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/Dockerfile +7 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/Makefile +4 -0
- data/README.md +12 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/processout/activity.rb +206 -0
- data/lib/processout/addon.rb +401 -0
- data/lib/processout/alternative_merchant_certificate.rb +115 -0
- data/lib/processout/api_request.rb +295 -0
- data/lib/processout/api_version.rb +92 -0
- data/lib/processout/apple_pay_alternative_merchant_certificates.rb +121 -0
- data/lib/processout/balance.rb +92 -0
- data/lib/processout/balances.rb +111 -0
- data/lib/processout/card.rb +503 -0
- data/lib/processout/card_information.rb +164 -0
- data/lib/processout/coupon.rb +352 -0
- data/lib/processout/customer.rb +755 -0
- data/lib/processout/customer_action.rb +81 -0
- data/lib/processout/discount.rb +360 -0
- data/lib/processout/dunning_action.rb +81 -0
- data/lib/processout/errors/authentication_error.rb +9 -0
- data/lib/processout/errors/generic_error.rb +9 -0
- data/lib/processout/errors/internal_error.rb +9 -0
- data/lib/processout/errors/notfound_error.rb +9 -0
- data/lib/processout/errors/validation_error.rb +9 -0
- data/lib/processout/event.rb +237 -0
- data/lib/processout/gateway.rb +210 -0
- data/lib/processout/gateway_configuration.rb +346 -0
- data/lib/processout/gateway_request.rb +26 -0
- data/lib/processout/invoice.rb +985 -0
- data/lib/processout/invoice_detail.rb +235 -0
- data/lib/processout/invoice_device.rb +92 -0
- data/lib/processout/invoice_external_fraud_tools.rb +70 -0
- data/lib/processout/invoice_risk.rb +81 -0
- data/lib/processout/invoice_shipping.rb +202 -0
- data/lib/processout/invoice_tax.rb +81 -0
- data/lib/processout/networking/request.rb +102 -0
- data/lib/processout/networking/response.rb +67 -0
- data/lib/processout/payment_data_network_authentication.rb +70 -0
- data/lib/processout/payment_data_three_ds_authentication.rb +70 -0
- data/lib/processout/payment_data_three_ds_request.rb +103 -0
- data/lib/processout/payout.rb +379 -0
- data/lib/processout/payout_item.rb +238 -0
- data/lib/processout/plan.rb +368 -0
- data/lib/processout/product.rb +368 -0
- data/lib/processout/project.rb +353 -0
- data/lib/processout/refund.rb +277 -0
- data/lib/processout/subscription.rb +910 -0
- data/lib/processout/three_ds.rb +158 -0
- data/lib/processout/token.rb +493 -0
- data/lib/processout/transaction.rb +905 -0
- data/lib/processout/transaction_operation.rb +418 -0
- data/lib/processout/version.rb +3 -0
- data/lib/processout/webhook.rb +237 -0
- data/lib/processout/webhook_endpoint.rb +149 -0
- data/lib/processout.rb +263 -0
- data/processout.gemspec +26 -0
- metadata +66 -3
@@ -0,0 +1,237 @@
|
|
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 Event
|
10
|
+
|
11
|
+
attr_reader :id
|
12
|
+
attr_reader :project
|
13
|
+
attr_reader :project_id
|
14
|
+
attr_reader :name
|
15
|
+
attr_reader :data
|
16
|
+
attr_reader :sandbox
|
17
|
+
attr_reader :fired_at
|
18
|
+
|
19
|
+
|
20
|
+
def id=(val)
|
21
|
+
@id = val
|
22
|
+
end
|
23
|
+
|
24
|
+
def project=(val)
|
25
|
+
if val.nil?
|
26
|
+
@project = val
|
27
|
+
return
|
28
|
+
end
|
29
|
+
|
30
|
+
if val.instance_of? Project
|
31
|
+
@project = val
|
32
|
+
else
|
33
|
+
obj = Project.new(@client)
|
34
|
+
obj.fill_with_data(val)
|
35
|
+
@project = obj
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
def project_id=(val)
|
41
|
+
@project_id = val
|
42
|
+
end
|
43
|
+
|
44
|
+
def name=(val)
|
45
|
+
@name = val
|
46
|
+
end
|
47
|
+
|
48
|
+
def data=(val)
|
49
|
+
@data = val
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
def sandbox=(val)
|
54
|
+
@sandbox = val
|
55
|
+
end
|
56
|
+
|
57
|
+
def fired_at=(val)
|
58
|
+
@fired_at = val
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
# Initializes the Event object
|
63
|
+
# Params:
|
64
|
+
# +client+:: +ProcessOut+ client instance
|
65
|
+
# +data+:: data that can be used to fill the object
|
66
|
+
def initialize(client, data = {})
|
67
|
+
@client = client
|
68
|
+
|
69
|
+
self.id = data.fetch(:id, nil)
|
70
|
+
self.project = data.fetch(:project, nil)
|
71
|
+
self.project_id = data.fetch(:project_id, nil)
|
72
|
+
self.name = data.fetch(:name, nil)
|
73
|
+
self.data = data.fetch(:data, nil)
|
74
|
+
self.sandbox = data.fetch(:sandbox, nil)
|
75
|
+
self.fired_at = data.fetch(:fired_at, nil)
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
# Create a new Event using the current client
|
80
|
+
def new(data = {})
|
81
|
+
Event.new(@client, data)
|
82
|
+
end
|
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
|
+
|
97
|
+
# Fills the object with data coming from the API
|
98
|
+
# Params:
|
99
|
+
# +data+:: +Hash+ of data coming from the API
|
100
|
+
def fill_with_data(data)
|
101
|
+
if data.nil?
|
102
|
+
return self
|
103
|
+
end
|
104
|
+
if data.include? "id"
|
105
|
+
self.id = data["id"]
|
106
|
+
end
|
107
|
+
if data.include? "project"
|
108
|
+
self.project = data["project"]
|
109
|
+
end
|
110
|
+
if data.include? "project_id"
|
111
|
+
self.project_id = data["project_id"]
|
112
|
+
end
|
113
|
+
if data.include? "name"
|
114
|
+
self.name = data["name"]
|
115
|
+
end
|
116
|
+
if data.include? "data"
|
117
|
+
self.data = data["data"]
|
118
|
+
end
|
119
|
+
if data.include? "sandbox"
|
120
|
+
self.sandbox = data["sandbox"]
|
121
|
+
end
|
122
|
+
if data.include? "fired_at"
|
123
|
+
self.fired_at = data["fired_at"]
|
124
|
+
end
|
125
|
+
|
126
|
+
self
|
127
|
+
end
|
128
|
+
|
129
|
+
# Prefills the object with the data passed as parameters
|
130
|
+
# Params:
|
131
|
+
# +data+:: +Hash+ of data
|
132
|
+
def prefill(data)
|
133
|
+
if data.nil?
|
134
|
+
return self
|
135
|
+
end
|
136
|
+
self.id = data.fetch(:id, self.id)
|
137
|
+
self.project = data.fetch(:project, self.project)
|
138
|
+
self.project_id = data.fetch(:project_id, self.project_id)
|
139
|
+
self.name = data.fetch(:name, self.name)
|
140
|
+
self.data = data.fetch(:data, self.data)
|
141
|
+
self.sandbox = data.fetch(:sandbox, self.sandbox)
|
142
|
+
self.fired_at = data.fetch(:fired_at, self.fired_at)
|
143
|
+
|
144
|
+
self
|
145
|
+
end
|
146
|
+
|
147
|
+
# Get all the webhooks of the event.
|
148
|
+
# Params:
|
149
|
+
# +options+:: +Hash+ of options
|
150
|
+
def fetch_webhooks(options = {})
|
151
|
+
self.prefill(options)
|
152
|
+
|
153
|
+
request = Request.new(@client)
|
154
|
+
path = "/events/" + CGI.escape(@id) + "/webhooks"
|
155
|
+
data = {
|
156
|
+
|
157
|
+
}
|
158
|
+
|
159
|
+
response = Response.new(request.get(path, data, options))
|
160
|
+
return_values = Array.new
|
161
|
+
|
162
|
+
a = Array.new
|
163
|
+
body = response.body
|
164
|
+
for v in body['webhooks']
|
165
|
+
tmp = Webhook.new(@client)
|
166
|
+
tmp.fill_with_data(v)
|
167
|
+
a.push(tmp)
|
168
|
+
end
|
169
|
+
|
170
|
+
return_values.push(a)
|
171
|
+
|
172
|
+
|
173
|
+
|
174
|
+
return_values[0]
|
175
|
+
end
|
176
|
+
|
177
|
+
# Get all the events.
|
178
|
+
# Params:
|
179
|
+
# +options+:: +Hash+ of options
|
180
|
+
def all(options = {})
|
181
|
+
self.prefill(options)
|
182
|
+
|
183
|
+
request = Request.new(@client)
|
184
|
+
path = "/events"
|
185
|
+
data = {
|
186
|
+
|
187
|
+
}
|
188
|
+
|
189
|
+
response = Response.new(request.get(path, data, options))
|
190
|
+
return_values = Array.new
|
191
|
+
|
192
|
+
a = Array.new
|
193
|
+
body = response.body
|
194
|
+
for v in body['events']
|
195
|
+
tmp = Event.new(@client)
|
196
|
+
tmp.fill_with_data(v)
|
197
|
+
a.push(tmp)
|
198
|
+
end
|
199
|
+
|
200
|
+
return_values.push(a)
|
201
|
+
|
202
|
+
|
203
|
+
|
204
|
+
return_values[0]
|
205
|
+
end
|
206
|
+
|
207
|
+
# Find an event by its ID.
|
208
|
+
# Params:
|
209
|
+
# +event_id+:: ID of the event
|
210
|
+
# +options+:: +Hash+ of options
|
211
|
+
def find(event_id, options = {})
|
212
|
+
self.prefill(options)
|
213
|
+
|
214
|
+
request = Request.new(@client)
|
215
|
+
path = "/events/" + CGI.escape(event_id) + ""
|
216
|
+
data = {
|
217
|
+
|
218
|
+
}
|
219
|
+
|
220
|
+
response = Response.new(request.get(path, data, options))
|
221
|
+
return_values = Array.new
|
222
|
+
|
223
|
+
body = response.body
|
224
|
+
body = body["event"]
|
225
|
+
|
226
|
+
|
227
|
+
obj = Event.new(@client)
|
228
|
+
return_values.push(obj.fill_with_data(body))
|
229
|
+
|
230
|
+
|
231
|
+
|
232
|
+
return_values[0]
|
233
|
+
end
|
234
|
+
|
235
|
+
|
236
|
+
end
|
237
|
+
end
|
@@ -0,0 +1,210 @@
|
|
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 Gateway
|
10
|
+
|
11
|
+
attr_reader :id
|
12
|
+
attr_reader :name
|
13
|
+
attr_reader :display_name
|
14
|
+
attr_reader :logo_url
|
15
|
+
attr_reader :url
|
16
|
+
attr_reader :flows
|
17
|
+
attr_reader :tags
|
18
|
+
attr_reader :can_pull_transactions
|
19
|
+
attr_reader :can_refund
|
20
|
+
attr_reader :is_oauth_authentication
|
21
|
+
attr_reader :description
|
22
|
+
|
23
|
+
|
24
|
+
def id=(val)
|
25
|
+
@id = val
|
26
|
+
end
|
27
|
+
|
28
|
+
def name=(val)
|
29
|
+
@name = val
|
30
|
+
end
|
31
|
+
|
32
|
+
def display_name=(val)
|
33
|
+
@display_name = val
|
34
|
+
end
|
35
|
+
|
36
|
+
def logo_url=(val)
|
37
|
+
@logo_url = val
|
38
|
+
end
|
39
|
+
|
40
|
+
def url=(val)
|
41
|
+
@url = val
|
42
|
+
end
|
43
|
+
|
44
|
+
def flows=(val)
|
45
|
+
@flows = val
|
46
|
+
end
|
47
|
+
|
48
|
+
def tags=(val)
|
49
|
+
@tags = val
|
50
|
+
end
|
51
|
+
|
52
|
+
def can_pull_transactions=(val)
|
53
|
+
@can_pull_transactions = val
|
54
|
+
end
|
55
|
+
|
56
|
+
def can_refund=(val)
|
57
|
+
@can_refund = val
|
58
|
+
end
|
59
|
+
|
60
|
+
def is_oauth_authentication=(val)
|
61
|
+
@is_oauth_authentication = val
|
62
|
+
end
|
63
|
+
|
64
|
+
def description=(val)
|
65
|
+
@description = val
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
# Initializes the Gateway object
|
70
|
+
# Params:
|
71
|
+
# +client+:: +ProcessOut+ client instance
|
72
|
+
# +data+:: data that can be used to fill the object
|
73
|
+
def initialize(client, data = {})
|
74
|
+
@client = client
|
75
|
+
|
76
|
+
self.id = data.fetch(:id, nil)
|
77
|
+
self.name = data.fetch(:name, nil)
|
78
|
+
self.display_name = data.fetch(:display_name, nil)
|
79
|
+
self.logo_url = data.fetch(:logo_url, nil)
|
80
|
+
self.url = data.fetch(:url, nil)
|
81
|
+
self.flows = data.fetch(:flows, nil)
|
82
|
+
self.tags = data.fetch(:tags, nil)
|
83
|
+
self.can_pull_transactions = data.fetch(:can_pull_transactions, nil)
|
84
|
+
self.can_refund = data.fetch(:can_refund, nil)
|
85
|
+
self.is_oauth_authentication = data.fetch(:is_oauth_authentication, nil)
|
86
|
+
self.description = data.fetch(:description, nil)
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
# Create a new Gateway using the current client
|
91
|
+
def new(data = {})
|
92
|
+
Gateway.new(@client, data)
|
93
|
+
end
|
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
|
+
|
112
|
+
# Fills the object with data coming from the API
|
113
|
+
# Params:
|
114
|
+
# +data+:: +Hash+ of data coming from the API
|
115
|
+
def fill_with_data(data)
|
116
|
+
if data.nil?
|
117
|
+
return self
|
118
|
+
end
|
119
|
+
if data.include? "id"
|
120
|
+
self.id = data["id"]
|
121
|
+
end
|
122
|
+
if data.include? "name"
|
123
|
+
self.name = data["name"]
|
124
|
+
end
|
125
|
+
if data.include? "display_name"
|
126
|
+
self.display_name = data["display_name"]
|
127
|
+
end
|
128
|
+
if data.include? "logo_url"
|
129
|
+
self.logo_url = data["logo_url"]
|
130
|
+
end
|
131
|
+
if data.include? "url"
|
132
|
+
self.url = data["url"]
|
133
|
+
end
|
134
|
+
if data.include? "flows"
|
135
|
+
self.flows = data["flows"]
|
136
|
+
end
|
137
|
+
if data.include? "tags"
|
138
|
+
self.tags = data["tags"]
|
139
|
+
end
|
140
|
+
if data.include? "can_pull_transactions"
|
141
|
+
self.can_pull_transactions = data["can_pull_transactions"]
|
142
|
+
end
|
143
|
+
if data.include? "can_refund"
|
144
|
+
self.can_refund = data["can_refund"]
|
145
|
+
end
|
146
|
+
if data.include? "is_oauth_authentication"
|
147
|
+
self.is_oauth_authentication = data["is_oauth_authentication"]
|
148
|
+
end
|
149
|
+
if data.include? "description"
|
150
|
+
self.description = data["description"]
|
151
|
+
end
|
152
|
+
|
153
|
+
self
|
154
|
+
end
|
155
|
+
|
156
|
+
# Prefills the object with the data passed as parameters
|
157
|
+
# Params:
|
158
|
+
# +data+:: +Hash+ of data
|
159
|
+
def prefill(data)
|
160
|
+
if data.nil?
|
161
|
+
return self
|
162
|
+
end
|
163
|
+
self.id = data.fetch(:id, self.id)
|
164
|
+
self.name = data.fetch(:name, self.name)
|
165
|
+
self.display_name = data.fetch(:display_name, self.display_name)
|
166
|
+
self.logo_url = data.fetch(:logo_url, self.logo_url)
|
167
|
+
self.url = data.fetch(:url, self.url)
|
168
|
+
self.flows = data.fetch(:flows, self.flows)
|
169
|
+
self.tags = data.fetch(:tags, self.tags)
|
170
|
+
self.can_pull_transactions = data.fetch(:can_pull_transactions, self.can_pull_transactions)
|
171
|
+
self.can_refund = data.fetch(:can_refund, self.can_refund)
|
172
|
+
self.is_oauth_authentication = data.fetch(:is_oauth_authentication, self.is_oauth_authentication)
|
173
|
+
self.description = data.fetch(:description, self.description)
|
174
|
+
|
175
|
+
self
|
176
|
+
end
|
177
|
+
|
178
|
+
# Get all the gateway configurations of the gateway
|
179
|
+
# Params:
|
180
|
+
# +options+:: +Hash+ of options
|
181
|
+
def fetch_gateway_configurations(options = {})
|
182
|
+
self.prefill(options)
|
183
|
+
|
184
|
+
request = Request.new(@client)
|
185
|
+
path = "/gateways/" + CGI.escape(@name) + "/gateway-configurations"
|
186
|
+
data = {
|
187
|
+
|
188
|
+
}
|
189
|
+
|
190
|
+
response = Response.new(request.get(path, data, options))
|
191
|
+
return_values = Array.new
|
192
|
+
|
193
|
+
a = Array.new
|
194
|
+
body = response.body
|
195
|
+
for v in body['gateway_configurations']
|
196
|
+
tmp = GatewayConfiguration.new(@client)
|
197
|
+
tmp.fill_with_data(v)
|
198
|
+
a.push(tmp)
|
199
|
+
end
|
200
|
+
|
201
|
+
return_values.push(a)
|
202
|
+
|
203
|
+
|
204
|
+
|
205
|
+
return_values[0]
|
206
|
+
end
|
207
|
+
|
208
|
+
|
209
|
+
end
|
210
|
+
end
|