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.
- 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 +984 -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,295 @@
|
|
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 APIRequest
|
10
|
+
|
11
|
+
attr_reader :id
|
12
|
+
attr_reader :project
|
13
|
+
attr_reader :api_version
|
14
|
+
attr_reader :idempotency_key
|
15
|
+
attr_reader :url
|
16
|
+
attr_reader :method
|
17
|
+
attr_reader :headers
|
18
|
+
attr_reader :body
|
19
|
+
attr_reader :response_code
|
20
|
+
attr_reader :response_headers
|
21
|
+
attr_reader :response_body
|
22
|
+
attr_reader :response_ms
|
23
|
+
attr_reader :sandbox
|
24
|
+
attr_reader :created_at
|
25
|
+
|
26
|
+
|
27
|
+
def id=(val)
|
28
|
+
@id = val
|
29
|
+
end
|
30
|
+
|
31
|
+
def project=(val)
|
32
|
+
if val.nil?
|
33
|
+
@project = val
|
34
|
+
return
|
35
|
+
end
|
36
|
+
|
37
|
+
if val.instance_of? Project
|
38
|
+
@project = val
|
39
|
+
else
|
40
|
+
obj = Project.new(@client)
|
41
|
+
obj.fill_with_data(val)
|
42
|
+
@project = obj
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
def api_version=(val)
|
48
|
+
if val.nil?
|
49
|
+
@api_version = val
|
50
|
+
return
|
51
|
+
end
|
52
|
+
|
53
|
+
if val.instance_of? APIVersion
|
54
|
+
@api_version = val
|
55
|
+
else
|
56
|
+
obj = APIVersion.new(@client)
|
57
|
+
obj.fill_with_data(val)
|
58
|
+
@api_version = obj
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
def idempotency_key=(val)
|
64
|
+
@idempotency_key = val
|
65
|
+
end
|
66
|
+
|
67
|
+
def url=(val)
|
68
|
+
@url = val
|
69
|
+
end
|
70
|
+
|
71
|
+
def method=(val)
|
72
|
+
@method = val
|
73
|
+
end
|
74
|
+
|
75
|
+
def headers=(val)
|
76
|
+
@headers = val
|
77
|
+
end
|
78
|
+
|
79
|
+
def body=(val)
|
80
|
+
@body = val
|
81
|
+
end
|
82
|
+
|
83
|
+
def response_code=(val)
|
84
|
+
@response_code = val
|
85
|
+
end
|
86
|
+
|
87
|
+
def response_headers=(val)
|
88
|
+
@response_headers = val
|
89
|
+
end
|
90
|
+
|
91
|
+
def response_body=(val)
|
92
|
+
@response_body = val
|
93
|
+
end
|
94
|
+
|
95
|
+
def response_ms=(val)
|
96
|
+
@response_ms = val
|
97
|
+
end
|
98
|
+
|
99
|
+
def sandbox=(val)
|
100
|
+
@sandbox = val
|
101
|
+
end
|
102
|
+
|
103
|
+
def created_at=(val)
|
104
|
+
@created_at = val
|
105
|
+
end
|
106
|
+
|
107
|
+
|
108
|
+
# Initializes the APIRequest object
|
109
|
+
# Params:
|
110
|
+
# +client+:: +ProcessOut+ client instance
|
111
|
+
# +data+:: data that can be used to fill the object
|
112
|
+
def initialize(client, data = {})
|
113
|
+
@client = client
|
114
|
+
|
115
|
+
self.id = data.fetch(:id, nil)
|
116
|
+
self.project = data.fetch(:project, nil)
|
117
|
+
self.api_version = data.fetch(:api_version, nil)
|
118
|
+
self.idempotency_key = data.fetch(:idempotency_key, nil)
|
119
|
+
self.url = data.fetch(:url, nil)
|
120
|
+
self.method = data.fetch(:method, nil)
|
121
|
+
self.headers = data.fetch(:headers, nil)
|
122
|
+
self.body = data.fetch(:body, nil)
|
123
|
+
self.response_code = data.fetch(:response_code, nil)
|
124
|
+
self.response_headers = data.fetch(:response_headers, nil)
|
125
|
+
self.response_body = data.fetch(:response_body, nil)
|
126
|
+
self.response_ms = data.fetch(:response_ms, nil)
|
127
|
+
self.sandbox = data.fetch(:sandbox, nil)
|
128
|
+
self.created_at = data.fetch(:created_at, nil)
|
129
|
+
|
130
|
+
end
|
131
|
+
|
132
|
+
# Create a new APIRequest using the current client
|
133
|
+
def new(data = {})
|
134
|
+
APIRequest.new(@client, data)
|
135
|
+
end
|
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
|
+
|
157
|
+
# Fills the object with data coming from the API
|
158
|
+
# Params:
|
159
|
+
# +data+:: +Hash+ of data coming from the API
|
160
|
+
def fill_with_data(data)
|
161
|
+
if data.nil?
|
162
|
+
return self
|
163
|
+
end
|
164
|
+
if data.include? "id"
|
165
|
+
self.id = data["id"]
|
166
|
+
end
|
167
|
+
if data.include? "project"
|
168
|
+
self.project = data["project"]
|
169
|
+
end
|
170
|
+
if data.include? "api_version"
|
171
|
+
self.api_version = data["api_version"]
|
172
|
+
end
|
173
|
+
if data.include? "idempotency_key"
|
174
|
+
self.idempotency_key = data["idempotency_key"]
|
175
|
+
end
|
176
|
+
if data.include? "url"
|
177
|
+
self.url = data["url"]
|
178
|
+
end
|
179
|
+
if data.include? "method"
|
180
|
+
self.method = data["method"]
|
181
|
+
end
|
182
|
+
if data.include? "headers"
|
183
|
+
self.headers = data["headers"]
|
184
|
+
end
|
185
|
+
if data.include? "body"
|
186
|
+
self.body = data["body"]
|
187
|
+
end
|
188
|
+
if data.include? "response_code"
|
189
|
+
self.response_code = data["response_code"]
|
190
|
+
end
|
191
|
+
if data.include? "response_headers"
|
192
|
+
self.response_headers = data["response_headers"]
|
193
|
+
end
|
194
|
+
if data.include? "response_body"
|
195
|
+
self.response_body = data["response_body"]
|
196
|
+
end
|
197
|
+
if data.include? "response_ms"
|
198
|
+
self.response_ms = data["response_ms"]
|
199
|
+
end
|
200
|
+
if data.include? "sandbox"
|
201
|
+
self.sandbox = data["sandbox"]
|
202
|
+
end
|
203
|
+
if data.include? "created_at"
|
204
|
+
self.created_at = data["created_at"]
|
205
|
+
end
|
206
|
+
|
207
|
+
self
|
208
|
+
end
|
209
|
+
|
210
|
+
# Prefills the object with the data passed as parameters
|
211
|
+
# Params:
|
212
|
+
# +data+:: +Hash+ of data
|
213
|
+
def prefill(data)
|
214
|
+
if data.nil?
|
215
|
+
return self
|
216
|
+
end
|
217
|
+
self.id = data.fetch(:id, self.id)
|
218
|
+
self.project = data.fetch(:project, self.project)
|
219
|
+
self.api_version = data.fetch(:api_version, self.api_version)
|
220
|
+
self.idempotency_key = data.fetch(:idempotency_key, self.idempotency_key)
|
221
|
+
self.url = data.fetch(:url, self.url)
|
222
|
+
self.method = data.fetch(:method, self.method)
|
223
|
+
self.headers = data.fetch(:headers, self.headers)
|
224
|
+
self.body = data.fetch(:body, self.body)
|
225
|
+
self.response_code = data.fetch(:response_code, self.response_code)
|
226
|
+
self.response_headers = data.fetch(:response_headers, self.response_headers)
|
227
|
+
self.response_body = data.fetch(:response_body, self.response_body)
|
228
|
+
self.response_ms = data.fetch(:response_ms, self.response_ms)
|
229
|
+
self.sandbox = data.fetch(:sandbox, self.sandbox)
|
230
|
+
self.created_at = data.fetch(:created_at, self.created_at)
|
231
|
+
|
232
|
+
self
|
233
|
+
end
|
234
|
+
|
235
|
+
# Get all the API requests.
|
236
|
+
# Params:
|
237
|
+
# +options+:: +Hash+ of options
|
238
|
+
def all(options = {})
|
239
|
+
self.prefill(options)
|
240
|
+
|
241
|
+
request = Request.new(@client)
|
242
|
+
path = "/api-requests"
|
243
|
+
data = {
|
244
|
+
|
245
|
+
}
|
246
|
+
|
247
|
+
response = Response.new(request.get(path, data, options))
|
248
|
+
return_values = Array.new
|
249
|
+
|
250
|
+
a = Array.new
|
251
|
+
body = response.body
|
252
|
+
for v in body['api_requests']
|
253
|
+
tmp = APIRequest.new(@client)
|
254
|
+
tmp.fill_with_data(v)
|
255
|
+
a.push(tmp)
|
256
|
+
end
|
257
|
+
|
258
|
+
return_values.push(a)
|
259
|
+
|
260
|
+
|
261
|
+
|
262
|
+
return_values[0]
|
263
|
+
end
|
264
|
+
|
265
|
+
# Find an API request by its ID.
|
266
|
+
# Params:
|
267
|
+
# +api_request_id+:: ID of the API request
|
268
|
+
# +options+:: +Hash+ of options
|
269
|
+
def find(api_request_id, options = {})
|
270
|
+
self.prefill(options)
|
271
|
+
|
272
|
+
request = Request.new(@client)
|
273
|
+
path = "/api-requests/{request_id}"
|
274
|
+
data = {
|
275
|
+
|
276
|
+
}
|
277
|
+
|
278
|
+
response = Response.new(request.get(path, data, options))
|
279
|
+
return_values = Array.new
|
280
|
+
|
281
|
+
body = response.body
|
282
|
+
body = body["api_request"]
|
283
|
+
|
284
|
+
|
285
|
+
obj = APIRequest.new(@client)
|
286
|
+
return_values.push(obj.fill_with_data(body))
|
287
|
+
|
288
|
+
|
289
|
+
|
290
|
+
return_values[0]
|
291
|
+
end
|
292
|
+
|
293
|
+
|
294
|
+
end
|
295
|
+
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 APIVersion
|
10
|
+
|
11
|
+
attr_reader :name
|
12
|
+
attr_reader :description
|
13
|
+
attr_reader :created_at
|
14
|
+
|
15
|
+
|
16
|
+
def name=(val)
|
17
|
+
@name = val
|
18
|
+
end
|
19
|
+
|
20
|
+
def description=(val)
|
21
|
+
@description = val
|
22
|
+
end
|
23
|
+
|
24
|
+
def created_at=(val)
|
25
|
+
@created_at = val
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
# Initializes the APIVersion 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.name = data.fetch(:name, nil)
|
37
|
+
self.description = data.fetch(:description, nil)
|
38
|
+
self.created_at = data.fetch(:created_at, nil)
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
# Create a new APIVersion using the current client
|
43
|
+
def new(data = {})
|
44
|
+
APIVersion.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
|
+
"name": self.name,
|
51
|
+
"description": self.description,
|
52
|
+
"created_at": self.created_at,
|
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? "name"
|
64
|
+
self.name = data["name"]
|
65
|
+
end
|
66
|
+
if data.include? "description"
|
67
|
+
self.description = data["description"]
|
68
|
+
end
|
69
|
+
if data.include? "created_at"
|
70
|
+
self.created_at = data["created_at"]
|
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.name = data.fetch(:name, self.name)
|
84
|
+
self.description = data.fetch(:description, self.description)
|
85
|
+
self.created_at = data.fetch(:created_at, self.created_at)
|
86
|
+
|
87
|
+
self
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,121 @@
|
|
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 ApplePayAlternativeMerchantCertificates
|
10
|
+
|
11
|
+
attr_reader :count
|
12
|
+
attr_reader :alternative_merchant_certificates
|
13
|
+
|
14
|
+
|
15
|
+
def count=(val)
|
16
|
+
@count = val
|
17
|
+
end
|
18
|
+
|
19
|
+
def alternative_merchant_certificates=(val)
|
20
|
+
if val.nil?
|
21
|
+
@alternative_merchant_certificates = []
|
22
|
+
return
|
23
|
+
end
|
24
|
+
|
25
|
+
if val.length > 0 and val[0].instance_of? AlternativeMerchantCertificate
|
26
|
+
@alternative_merchant_certificates = val
|
27
|
+
else
|
28
|
+
l = Array.new
|
29
|
+
for v in val
|
30
|
+
obj = AlternativeMerchantCertificate.new(@client)
|
31
|
+
obj.fill_with_data(v)
|
32
|
+
l.push(obj)
|
33
|
+
end
|
34
|
+
@alternative_merchant_certificates = l
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
# Initializes the ApplePayAlternativeMerchantCertificates object
|
41
|
+
# Params:
|
42
|
+
# +client+:: +ProcessOut+ client instance
|
43
|
+
# +data+:: data that can be used to fill the object
|
44
|
+
def initialize(client, data = {})
|
45
|
+
@client = client
|
46
|
+
|
47
|
+
self.count = data.fetch(:count, nil)
|
48
|
+
self.alternative_merchant_certificates = data.fetch(:alternative_merchant_certificates, nil)
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
# Create a new ApplePayAlternativeMerchantCertificates using the current client
|
53
|
+
def new(data = {})
|
54
|
+
ApplePayAlternativeMerchantCertificates.new(@client, data)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Overrides the JSON marshaller to only send the fields we want
|
58
|
+
def to_json(options)
|
59
|
+
{
|
60
|
+
"count": self.count,
|
61
|
+
"alternative_merchant_certificates": self.alternative_merchant_certificates,
|
62
|
+
}.to_json
|
63
|
+
end
|
64
|
+
|
65
|
+
# Fills the object with data coming from the API
|
66
|
+
# Params:
|
67
|
+
# +data+:: +Hash+ of data coming from the API
|
68
|
+
def fill_with_data(data)
|
69
|
+
if data.nil?
|
70
|
+
return self
|
71
|
+
end
|
72
|
+
if data.include? "count"
|
73
|
+
self.count = data["count"]
|
74
|
+
end
|
75
|
+
if data.include? "alternative_merchant_certificates"
|
76
|
+
self.alternative_merchant_certificates = data["alternative_merchant_certificates"]
|
77
|
+
end
|
78
|
+
|
79
|
+
self
|
80
|
+
end
|
81
|
+
|
82
|
+
# Prefills the object with the data passed as parameters
|
83
|
+
# Params:
|
84
|
+
# +data+:: +Hash+ of data
|
85
|
+
def prefill(data)
|
86
|
+
if data.nil?
|
87
|
+
return self
|
88
|
+
end
|
89
|
+
self.count = data.fetch(:count, self.count)
|
90
|
+
self.alternative_merchant_certificates = data.fetch(:alternative_merchant_certificates, self.alternative_merchant_certificates)
|
91
|
+
|
92
|
+
self
|
93
|
+
end
|
94
|
+
|
95
|
+
# Fetch the project's alternative certificates by ID
|
96
|
+
# Params:
|
97
|
+
# +options+:: +Hash+ of options
|
98
|
+
def fetch(options = {})
|
99
|
+
self.prefill(options)
|
100
|
+
|
101
|
+
request = Request.new(@client)
|
102
|
+
path = "/projects/applepay/alternative-merchant-certificates"
|
103
|
+
data = {
|
104
|
+
|
105
|
+
}
|
106
|
+
|
107
|
+
response = Response.new(request.get(path, data, options))
|
108
|
+
return_values = Array.new
|
109
|
+
|
110
|
+
body = response.body
|
111
|
+
body = body["applepay_certificates"]
|
112
|
+
apple_pay_alternative_merchant_certificates = ApplePayAlternativeMerchantCertificates.new(@client)
|
113
|
+
return_values.push(apple_pay_alternative_merchant_certificates.fill_with_data(body))
|
114
|
+
|
115
|
+
|
116
|
+
return_values[0]
|
117
|
+
end
|
118
|
+
|
119
|
+
|
120
|
+
end
|
121
|
+
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 Balance
|
10
|
+
|
11
|
+
attr_reader :amount
|
12
|
+
attr_reader :currency
|
13
|
+
attr_reader :expiry
|
14
|
+
|
15
|
+
|
16
|
+
def amount=(val)
|
17
|
+
@amount = val
|
18
|
+
end
|
19
|
+
|
20
|
+
def currency=(val)
|
21
|
+
@currency = val
|
22
|
+
end
|
23
|
+
|
24
|
+
def expiry=(val)
|
25
|
+
@expiry = val
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
# Initializes the Balance 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.amount = data.fetch(:amount, nil)
|
37
|
+
self.currency = data.fetch(:currency, nil)
|
38
|
+
self.expiry = data.fetch(:expiry, nil)
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
# Create a new Balance using the current client
|
43
|
+
def new(data = {})
|
44
|
+
Balance.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
|
+
"amount": self.amount,
|
51
|
+
"currency": self.currency,
|
52
|
+
"expiry": self.expiry,
|
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? "amount"
|
64
|
+
self.amount = data["amount"]
|
65
|
+
end
|
66
|
+
if data.include? "currency"
|
67
|
+
self.currency = data["currency"]
|
68
|
+
end
|
69
|
+
if data.include? "expiry"
|
70
|
+
self.expiry = data["expiry"]
|
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.amount = data.fetch(:amount, self.amount)
|
84
|
+
self.currency = data.fetch(:currency, self.currency)
|
85
|
+
self.expiry = data.fetch(:expiry, self.expiry)
|
86
|
+
|
87
|
+
self
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,111 @@
|
|
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 Balances
|
10
|
+
|
11
|
+
attr_reader :vouchers
|
12
|
+
|
13
|
+
|
14
|
+
def vouchers=(val)
|
15
|
+
if val.nil?
|
16
|
+
@vouchers = []
|
17
|
+
return
|
18
|
+
end
|
19
|
+
|
20
|
+
if val.length > 0 and val[0].instance_of? Balance
|
21
|
+
@vouchers = val
|
22
|
+
else
|
23
|
+
l = Array.new
|
24
|
+
for v in val
|
25
|
+
obj = Balance.new(@client)
|
26
|
+
obj.fill_with_data(v)
|
27
|
+
l.push(obj)
|
28
|
+
end
|
29
|
+
@vouchers = l
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
# Initializes the Balances object
|
36
|
+
# Params:
|
37
|
+
# +client+:: +ProcessOut+ client instance
|
38
|
+
# +data+:: data that can be used to fill the object
|
39
|
+
def initialize(client, data = {})
|
40
|
+
@client = client
|
41
|
+
|
42
|
+
self.vouchers = data.fetch(:vouchers, nil)
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
# Create a new Balances using the current client
|
47
|
+
def new(data = {})
|
48
|
+
Balances.new(@client, data)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Overrides the JSON marshaller to only send the fields we want
|
52
|
+
def to_json(options)
|
53
|
+
{
|
54
|
+
"vouchers": self.vouchers,
|
55
|
+
}.to_json
|
56
|
+
end
|
57
|
+
|
58
|
+
# Fills the object with data coming from the API
|
59
|
+
# Params:
|
60
|
+
# +data+:: +Hash+ of data coming from the API
|
61
|
+
def fill_with_data(data)
|
62
|
+
if data.nil?
|
63
|
+
return self
|
64
|
+
end
|
65
|
+
if data.include? "vouchers"
|
66
|
+
self.vouchers = data["vouchers"]
|
67
|
+
end
|
68
|
+
|
69
|
+
self
|
70
|
+
end
|
71
|
+
|
72
|
+
# Prefills the object with the data passed as parameters
|
73
|
+
# Params:
|
74
|
+
# +data+:: +Hash+ of data
|
75
|
+
def prefill(data)
|
76
|
+
if data.nil?
|
77
|
+
return self
|
78
|
+
end
|
79
|
+
self.vouchers = data.fetch(:vouchers, self.vouchers)
|
80
|
+
|
81
|
+
self
|
82
|
+
end
|
83
|
+
|
84
|
+
# Fetch a customer token's balance
|
85
|
+
# Params:
|
86
|
+
# +token_id+:: ID of the customer's token
|
87
|
+
# +options+:: +Hash+ of options
|
88
|
+
def find(token_id, options = {})
|
89
|
+
self.prefill(options)
|
90
|
+
|
91
|
+
request = Request.new(@client)
|
92
|
+
path = "/balances/tokens/" + CGI.escape(token_id) + ""
|
93
|
+
data = {
|
94
|
+
|
95
|
+
}
|
96
|
+
|
97
|
+
response = Response.new(request.get(path, data, options))
|
98
|
+
return_values = Array.new
|
99
|
+
|
100
|
+
body = response.body
|
101
|
+
body = body["balances"]
|
102
|
+
balances = Balances.new(@client)
|
103
|
+
return_values.push(balances.fill_with_data(body))
|
104
|
+
|
105
|
+
|
106
|
+
return_values[0]
|
107
|
+
end
|
108
|
+
|
109
|
+
|
110
|
+
end
|
111
|
+
end
|