apimatic-ci-cd-test 1.0.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 +7 -0
- data/LICENSE +28 -0
- data/README.md +1168 -0
- data/lib/payments_api.rb +49 -0
- data/lib/payments_api/api_helper.rb +277 -0
- data/lib/payments_api/client.rb +42 -0
- data/lib/payments_api/configuration.rb +116 -0
- data/lib/payments_api/controllers/base_controller.rb +49 -0
- data/lib/payments_api/controllers/payments_controller.rb +272 -0
- data/lib/payments_api/controllers/quotes_controller.rb +213 -0
- data/lib/payments_api/exceptions/api_exception.rb +20 -0
- data/lib/payments_api/exceptions/request_error_exception.rb +29 -0
- data/lib/payments_api/http/auth/custom_header_auth.rb +16 -0
- data/lib/payments_api/http/faraday_client.rb +70 -0
- data/lib/payments_api/http/http_call_back.rb +24 -0
- data/lib/payments_api/http/http_client.rb +104 -0
- data/lib/payments_api/http/http_method_enum.rb +13 -0
- data/lib/payments_api/http/http_request.rb +50 -0
- data/lib/payments_api/http/http_response.rb +29 -0
- data/lib/payments_api/models/address.rb +80 -0
- data/lib/payments_api/models/bank.rb +63 -0
- data/lib/payments_api/models/bank_account.rb +48 -0
- data/lib/payments_api/models/base_model.rb +47 -0
- data/lib/payments_api/models/beneficiary.rb +62 -0
- data/lib/payments_api/models/originator.rb +44 -0
- data/lib/payments_api/models/payment.rb +127 -0
- data/lib/payments_api/models/payment_details.rb +53 -0
- data/lib/payments_api/models/payment_status.rb +44 -0
- data/lib/payments_api/models/quote.rb +104 -0
- data/lib/payments_api/utilities/date_time_helper.rb +156 -0
- data/lib/payments_api/utilities/file_wrapper.rb +17 -0
- metadata +155 -0
@@ -0,0 +1,49 @@
|
|
1
|
+
# payments_api
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module PaymentsApi
|
7
|
+
# BaseController.
|
8
|
+
class BaseController
|
9
|
+
attr_accessor :config, :http_call_back
|
10
|
+
|
11
|
+
def initialize(config, http_call_back: nil)
|
12
|
+
@config = config
|
13
|
+
@http_call_back = http_call_back
|
14
|
+
|
15
|
+
@global_headers = {
|
16
|
+
'user-agent' => 'APIMATIC 3.0'
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
def validate_parameters(args)
|
21
|
+
args.each do |_name, value|
|
22
|
+
if value.nil?
|
23
|
+
raise ArgumentError, "Required parameter #{_name} cannot be nil."
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def execute_request(request, binary: false)
|
29
|
+
@http_call_back.on_before_request(request) if @http_call_back
|
30
|
+
|
31
|
+
APIHelper.clean_hash(request.headers)
|
32
|
+
request.headers.merge!(@global_headers)
|
33
|
+
|
34
|
+
response = if binary
|
35
|
+
config.http_client.execute_as_binary(request)
|
36
|
+
else
|
37
|
+
config.http_client.execute_as_string(request)
|
38
|
+
end
|
39
|
+
@http_call_back.on_after_response(response) if @http_call_back
|
40
|
+
|
41
|
+
response
|
42
|
+
end
|
43
|
+
|
44
|
+
def validate_response(response)
|
45
|
+
raise APIException.new 'HTTP Response Not OK', response unless
|
46
|
+
response.status_code.between?(200, 208) # [200,208] = HTTP OK
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,272 @@
|
|
1
|
+
# payments_api
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module PaymentsApi
|
7
|
+
# PaymentsController
|
8
|
+
class PaymentsController < BaseController
|
9
|
+
def initialize(config, http_call_back: nil)
|
10
|
+
super(config, http_call_back: http_call_back)
|
11
|
+
end
|
12
|
+
|
13
|
+
# Creates a new Payment
|
14
|
+
# @param [String] bank_id Required parameter: Bank ID (Routing Number)
|
15
|
+
# @param [Payment] body Required parameter: Create Payment Body Data
|
16
|
+
# @return [Payment] response from the API call
|
17
|
+
def create_payment(bank_id,
|
18
|
+
body)
|
19
|
+
# Prepare query url.
|
20
|
+
_query_builder = config.get_base_uri
|
21
|
+
_query_builder << '/payments'
|
22
|
+
_query_url = APIHelper.clean_url _query_builder
|
23
|
+
|
24
|
+
# Prepare headers.
|
25
|
+
_headers = {
|
26
|
+
'accept' => 'application/json',
|
27
|
+
'content-type' => 'application/json; charset=utf-8',
|
28
|
+
'bankId' => bank_id
|
29
|
+
}
|
30
|
+
|
31
|
+
# Prepare and execute HttpRequest.
|
32
|
+
_request = config.http_client.post(
|
33
|
+
_query_url,
|
34
|
+
headers: _headers,
|
35
|
+
parameters: body.to_json
|
36
|
+
)
|
37
|
+
CustomHeaderAuth.apply(config, _request)
|
38
|
+
_response = execute_request(_request)
|
39
|
+
|
40
|
+
# Validate response against endpoint and global error codes.
|
41
|
+
if _response.status_code == 400
|
42
|
+
raise RequestErrorException.new(
|
43
|
+
'Error in Request',
|
44
|
+
_response
|
45
|
+
)
|
46
|
+
elsif _response.status_code == 403
|
47
|
+
raise APIException.new(
|
48
|
+
'Forbidden',
|
49
|
+
_response
|
50
|
+
)
|
51
|
+
elsif _response.status_code == 500
|
52
|
+
raise RequestErrorException.new(
|
53
|
+
'System Error',
|
54
|
+
_response
|
55
|
+
)
|
56
|
+
end
|
57
|
+
validate_response(_response)
|
58
|
+
|
59
|
+
# Return appropriate response type.
|
60
|
+
decoded = APIHelper.json_deserialize(_response.raw_body)
|
61
|
+
Payment.from_hash(decoded)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Attempts to cancel a Payment. Does not automatically cancel the linked
|
65
|
+
# Quote.
|
66
|
+
# @param [String] bank_id Required parameter: Bank ID (Routing Number)
|
67
|
+
# @param [Integer] payment_id Required parameter: ID of payment to cancel
|
68
|
+
# @return [void] response from the API call
|
69
|
+
def cancel_payment(bank_id,
|
70
|
+
payment_id)
|
71
|
+
# Prepare query url.
|
72
|
+
_query_builder = config.get_base_uri
|
73
|
+
_query_builder << '/payments/{paymentId}'
|
74
|
+
_query_builder = APIHelper.append_url_with_template_parameters(
|
75
|
+
_query_builder,
|
76
|
+
'paymentId' => { 'value' => payment_id, 'encode' => true }
|
77
|
+
)
|
78
|
+
_query_url = APIHelper.clean_url _query_builder
|
79
|
+
|
80
|
+
# Prepare headers.
|
81
|
+
_headers = {
|
82
|
+
'bankId' => bank_id
|
83
|
+
}
|
84
|
+
|
85
|
+
# Prepare and execute HttpRequest.
|
86
|
+
_request = config.http_client.delete(
|
87
|
+
_query_url,
|
88
|
+
headers: _headers
|
89
|
+
)
|
90
|
+
CustomHeaderAuth.apply(config, _request)
|
91
|
+
_response = execute_request(_request)
|
92
|
+
|
93
|
+
# Validate response against endpoint and global error codes.
|
94
|
+
if _response.status_code == 400
|
95
|
+
raise RequestErrorException.new(
|
96
|
+
'Error in Request',
|
97
|
+
_response
|
98
|
+
)
|
99
|
+
elsif _response.status_code == 403
|
100
|
+
raise APIException.new(
|
101
|
+
'Forbidden',
|
102
|
+
_response
|
103
|
+
)
|
104
|
+
elsif _response.status_code == 500
|
105
|
+
raise RequestErrorException.new(
|
106
|
+
'System Error',
|
107
|
+
_response
|
108
|
+
)
|
109
|
+
end
|
110
|
+
validate_response(_response)
|
111
|
+
end
|
112
|
+
|
113
|
+
# Update the data for a Payment before it is approved or sent
|
114
|
+
# @param [String] bank_id Required parameter: Bank ID (Routing Number)
|
115
|
+
# @param [Integer] payment_id Required parameter: ID of payment to update
|
116
|
+
# @param [Payment] body Required parameter: Update Payment Body Data
|
117
|
+
# @return [Payment] response from the API call
|
118
|
+
def update_payment(bank_id,
|
119
|
+
payment_id,
|
120
|
+
body)
|
121
|
+
# Prepare query url.
|
122
|
+
_query_builder = config.get_base_uri
|
123
|
+
_query_builder << '/payments/{paymentId}'
|
124
|
+
_query_builder = APIHelper.append_url_with_template_parameters(
|
125
|
+
_query_builder,
|
126
|
+
'paymentId' => { 'value' => payment_id, 'encode' => true }
|
127
|
+
)
|
128
|
+
_query_url = APIHelper.clean_url _query_builder
|
129
|
+
|
130
|
+
# Prepare headers.
|
131
|
+
_headers = {
|
132
|
+
'accept' => 'application/json',
|
133
|
+
'content-type' => 'application/json; charset=utf-8',
|
134
|
+
'bankId' => bank_id
|
135
|
+
}
|
136
|
+
|
137
|
+
# Prepare and execute HttpRequest.
|
138
|
+
_request = config.http_client.put(
|
139
|
+
_query_url,
|
140
|
+
headers: _headers,
|
141
|
+
parameters: body.to_json
|
142
|
+
)
|
143
|
+
CustomHeaderAuth.apply(config, _request)
|
144
|
+
_response = execute_request(_request)
|
145
|
+
|
146
|
+
# Validate response against endpoint and global error codes.
|
147
|
+
if _response.status_code == 400
|
148
|
+
raise RequestErrorException.new(
|
149
|
+
'Error in Request',
|
150
|
+
_response
|
151
|
+
)
|
152
|
+
elsif _response.status_code == 403
|
153
|
+
raise APIException.new(
|
154
|
+
'Forbidden',
|
155
|
+
_response
|
156
|
+
)
|
157
|
+
elsif _response.status_code == 500
|
158
|
+
raise RequestErrorException.new(
|
159
|
+
'System Error',
|
160
|
+
_response
|
161
|
+
)
|
162
|
+
end
|
163
|
+
validate_response(_response)
|
164
|
+
|
165
|
+
# Return appropriate response type.
|
166
|
+
decoded = APIHelper.json_deserialize(_response.raw_body)
|
167
|
+
Payment.from_hash(decoded)
|
168
|
+
end
|
169
|
+
|
170
|
+
# Approves a Payment to be sent
|
171
|
+
# @param [String] bank_id Required parameter: Bank ID (Routing Number)
|
172
|
+
# @param [Integer] payment_id Required parameter: ID of payment to approve
|
173
|
+
# @return [void] response from the API call
|
174
|
+
def approve_payment(bank_id,
|
175
|
+
payment_id)
|
176
|
+
# Prepare query url.
|
177
|
+
_query_builder = config.get_base_uri
|
178
|
+
_query_builder << '/payments/{paymentId}/approve'
|
179
|
+
_query_builder = APIHelper.append_url_with_template_parameters(
|
180
|
+
_query_builder,
|
181
|
+
'paymentId' => { 'value' => payment_id, 'encode' => true }
|
182
|
+
)
|
183
|
+
_query_url = APIHelper.clean_url _query_builder
|
184
|
+
|
185
|
+
# Prepare headers.
|
186
|
+
_headers = {
|
187
|
+
'bankId' => bank_id
|
188
|
+
}
|
189
|
+
|
190
|
+
# Prepare and execute HttpRequest.
|
191
|
+
_request = config.http_client.post(
|
192
|
+
_query_url,
|
193
|
+
headers: _headers
|
194
|
+
)
|
195
|
+
CustomHeaderAuth.apply(config, _request)
|
196
|
+
_response = execute_request(_request)
|
197
|
+
|
198
|
+
# Validate response against endpoint and global error codes.
|
199
|
+
if _response.status_code == 400
|
200
|
+
raise RequestErrorException.new(
|
201
|
+
'Error in Request',
|
202
|
+
_response
|
203
|
+
)
|
204
|
+
elsif _response.status_code == 403
|
205
|
+
raise APIException.new(
|
206
|
+
'Forbidden',
|
207
|
+
_response
|
208
|
+
)
|
209
|
+
elsif _response.status_code == 500
|
210
|
+
raise RequestErrorException.new(
|
211
|
+
'System Error',
|
212
|
+
_response
|
213
|
+
)
|
214
|
+
end
|
215
|
+
validate_response(_response)
|
216
|
+
end
|
217
|
+
|
218
|
+
# Validates an IBAN and returns the bank account information
|
219
|
+
# @param [String] bank_id Required parameter: Bank ID (Routing Number)
|
220
|
+
# @param [String] iban Required parameter: Currency that is required by the
|
221
|
+
# client, sell foreign currency in exchange for local currency
|
222
|
+
# @return [BankAccount] response from the API call
|
223
|
+
def validate_iban(bank_id,
|
224
|
+
iban)
|
225
|
+
# Prepare query url.
|
226
|
+
_query_builder = config.get_base_uri
|
227
|
+
_query_builder << '/payments/get-bank-account-from-iban'
|
228
|
+
_query_builder = APIHelper.append_url_with_query_parameters(
|
229
|
+
_query_builder,
|
230
|
+
'iban' => iban
|
231
|
+
)
|
232
|
+
_query_url = APIHelper.clean_url _query_builder
|
233
|
+
|
234
|
+
# Prepare headers.
|
235
|
+
_headers = {
|
236
|
+
'accept' => 'application/json',
|
237
|
+
'bankId' => bank_id
|
238
|
+
}
|
239
|
+
|
240
|
+
# Prepare and execute HttpRequest.
|
241
|
+
_request = config.http_client.get(
|
242
|
+
_query_url,
|
243
|
+
headers: _headers
|
244
|
+
)
|
245
|
+
CustomHeaderAuth.apply(config, _request)
|
246
|
+
_response = execute_request(_request)
|
247
|
+
|
248
|
+
# Validate response against endpoint and global error codes.
|
249
|
+
if _response.status_code == 400
|
250
|
+
raise RequestErrorException.new(
|
251
|
+
'Error in Request',
|
252
|
+
_response
|
253
|
+
)
|
254
|
+
elsif _response.status_code == 403
|
255
|
+
raise APIException.new(
|
256
|
+
'Forbidden',
|
257
|
+
_response
|
258
|
+
)
|
259
|
+
elsif _response.status_code == 500
|
260
|
+
raise RequestErrorException.new(
|
261
|
+
'System Error',
|
262
|
+
_response
|
263
|
+
)
|
264
|
+
end
|
265
|
+
validate_response(_response)
|
266
|
+
|
267
|
+
# Return appropriate response type.
|
268
|
+
decoded = APIHelper.json_deserialize(_response.raw_body)
|
269
|
+
BankAccount.from_hash(decoded)
|
270
|
+
end
|
271
|
+
end
|
272
|
+
end
|
@@ -0,0 +1,213 @@
|
|
1
|
+
# payments_api
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module PaymentsApi
|
7
|
+
# QuotesController
|
8
|
+
class QuotesController < BaseController
|
9
|
+
def initialize(config, http_call_back: nil)
|
10
|
+
super(config, http_call_back: http_call_back)
|
11
|
+
end
|
12
|
+
|
13
|
+
# Create new Quote
|
14
|
+
# @param [String] bank_id Required parameter: Bank ID (Routing Number)
|
15
|
+
# @param [Quote] body Required parameter: Quote data
|
16
|
+
# @return [Quote] response from the API call
|
17
|
+
def create_quote(bank_id,
|
18
|
+
body)
|
19
|
+
# Prepare query url.
|
20
|
+
_query_builder = config.get_base_uri
|
21
|
+
_query_builder << '/quotes'
|
22
|
+
_query_url = APIHelper.clean_url _query_builder
|
23
|
+
|
24
|
+
# Prepare headers.
|
25
|
+
_headers = {
|
26
|
+
'accept' => 'application/json',
|
27
|
+
'content-type' => 'application/json; charset=utf-8',
|
28
|
+
'bankId' => bank_id
|
29
|
+
}
|
30
|
+
|
31
|
+
# Prepare and execute HttpRequest.
|
32
|
+
_request = config.http_client.post(
|
33
|
+
_query_url,
|
34
|
+
headers: _headers,
|
35
|
+
parameters: body.to_json
|
36
|
+
)
|
37
|
+
CustomHeaderAuth.apply(config, _request)
|
38
|
+
_response = execute_request(_request)
|
39
|
+
|
40
|
+
# Validate response against endpoint and global error codes.
|
41
|
+
if _response.status_code == 400
|
42
|
+
raise RequestErrorException.new(
|
43
|
+
'Error in Request',
|
44
|
+
_response
|
45
|
+
)
|
46
|
+
elsif _response.status_code == 403
|
47
|
+
raise APIException.new(
|
48
|
+
'Forbidden',
|
49
|
+
_response
|
50
|
+
)
|
51
|
+
elsif _response.status_code == 500
|
52
|
+
raise RequestErrorException.new(
|
53
|
+
'System Error',
|
54
|
+
_response
|
55
|
+
)
|
56
|
+
end
|
57
|
+
validate_response(_response)
|
58
|
+
|
59
|
+
# Return appropriate response type.
|
60
|
+
decoded = APIHelper.json_deserialize(_response.raw_body)
|
61
|
+
Quote.from_hash(decoded)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Attempts to cancel a Quote
|
65
|
+
# @param [String] bank_id Required parameter: Bank ID (Routing Number)
|
66
|
+
# @param [Integer] quote_id Required parameter: ID of quote to refresh
|
67
|
+
# @return [void] response from the API call
|
68
|
+
def cancel_quote(bank_id,
|
69
|
+
quote_id)
|
70
|
+
# Prepare query url.
|
71
|
+
_query_builder = config.get_base_uri
|
72
|
+
_query_builder << '/quotes/{quoteId}'
|
73
|
+
_query_builder = APIHelper.append_url_with_template_parameters(
|
74
|
+
_query_builder,
|
75
|
+
'quoteId' => { 'value' => quote_id, 'encode' => true }
|
76
|
+
)
|
77
|
+
_query_url = APIHelper.clean_url _query_builder
|
78
|
+
|
79
|
+
# Prepare headers.
|
80
|
+
_headers = {
|
81
|
+
'bankId' => bank_id
|
82
|
+
}
|
83
|
+
|
84
|
+
# Prepare and execute HttpRequest.
|
85
|
+
_request = config.http_client.delete(
|
86
|
+
_query_url,
|
87
|
+
headers: _headers
|
88
|
+
)
|
89
|
+
CustomHeaderAuth.apply(config, _request)
|
90
|
+
_response = execute_request(_request)
|
91
|
+
|
92
|
+
# Validate response against endpoint and global error codes.
|
93
|
+
if _response.status_code == 400
|
94
|
+
raise RequestErrorException.new(
|
95
|
+
'Error in Request',
|
96
|
+
_response
|
97
|
+
)
|
98
|
+
elsif _response.status_code == 403
|
99
|
+
raise APIException.new(
|
100
|
+
'Forbidden',
|
101
|
+
_response
|
102
|
+
)
|
103
|
+
elsif _response.status_code == 500
|
104
|
+
raise RequestErrorException.new(
|
105
|
+
'System Error',
|
106
|
+
_response
|
107
|
+
)
|
108
|
+
end
|
109
|
+
validate_response(_response)
|
110
|
+
end
|
111
|
+
|
112
|
+
# Lock the rate for a given Quote
|
113
|
+
# @param [String] bank_id Required parameter: Bank ID (Routing Number)
|
114
|
+
# @param [Integer] quote_id Required parameter: ID of quote to lock
|
115
|
+
# @return [void] response from the API call
|
116
|
+
def lock_quote(bank_id,
|
117
|
+
quote_id)
|
118
|
+
# Prepare query url.
|
119
|
+
_query_builder = config.get_base_uri
|
120
|
+
_query_builder << '/quotes/{quoteId}/lock'
|
121
|
+
_query_builder = APIHelper.append_url_with_template_parameters(
|
122
|
+
_query_builder,
|
123
|
+
'quoteId' => { 'value' => quote_id, 'encode' => true }
|
124
|
+
)
|
125
|
+
_query_url = APIHelper.clean_url _query_builder
|
126
|
+
|
127
|
+
# Prepare headers.
|
128
|
+
_headers = {
|
129
|
+
'bankId' => bank_id
|
130
|
+
}
|
131
|
+
|
132
|
+
# Prepare and execute HttpRequest.
|
133
|
+
_request = config.http_client.post(
|
134
|
+
_query_url,
|
135
|
+
headers: _headers
|
136
|
+
)
|
137
|
+
CustomHeaderAuth.apply(config, _request)
|
138
|
+
_response = execute_request(_request)
|
139
|
+
|
140
|
+
# Validate response against endpoint and global error codes.
|
141
|
+
if _response.status_code == 400
|
142
|
+
raise RequestErrorException.new(
|
143
|
+
'Error in Request',
|
144
|
+
_response
|
145
|
+
)
|
146
|
+
elsif _response.status_code == 403
|
147
|
+
raise APIException.new(
|
148
|
+
'Forbidden',
|
149
|
+
_response
|
150
|
+
)
|
151
|
+
elsif _response.status_code == 500
|
152
|
+
raise RequestErrorException.new(
|
153
|
+
'System Error',
|
154
|
+
_response
|
155
|
+
)
|
156
|
+
end
|
157
|
+
validate_response(_response)
|
158
|
+
end
|
159
|
+
|
160
|
+
# Refresh the rates for an existing Quote
|
161
|
+
# @param [String] bank_id Required parameter: Bank ID (Routing Number)
|
162
|
+
# @param [Integer] quote_id Required parameter: ID of quote to refresh
|
163
|
+
# @return [Quote] response from the API call
|
164
|
+
def refresh_quote(bank_id,
|
165
|
+
quote_id)
|
166
|
+
# Prepare query url.
|
167
|
+
_query_builder = config.get_base_uri
|
168
|
+
_query_builder << '/quotes/{quoteId}/refresh'
|
169
|
+
_query_builder = APIHelper.append_url_with_template_parameters(
|
170
|
+
_query_builder,
|
171
|
+
'quoteId' => { 'value' => quote_id, 'encode' => true }
|
172
|
+
)
|
173
|
+
_query_url = APIHelper.clean_url _query_builder
|
174
|
+
|
175
|
+
# Prepare headers.
|
176
|
+
_headers = {
|
177
|
+
'accept' => 'application/json',
|
178
|
+
'bankId' => bank_id
|
179
|
+
}
|
180
|
+
|
181
|
+
# Prepare and execute HttpRequest.
|
182
|
+
_request = config.http_client.post(
|
183
|
+
_query_url,
|
184
|
+
headers: _headers
|
185
|
+
)
|
186
|
+
CustomHeaderAuth.apply(config, _request)
|
187
|
+
_response = execute_request(_request)
|
188
|
+
|
189
|
+
# Validate response against endpoint and global error codes.
|
190
|
+
if _response.status_code == 400
|
191
|
+
raise RequestErrorException.new(
|
192
|
+
'Error in Request',
|
193
|
+
_response
|
194
|
+
)
|
195
|
+
elsif _response.status_code == 403
|
196
|
+
raise APIException.new(
|
197
|
+
'Forbidden',
|
198
|
+
_response
|
199
|
+
)
|
200
|
+
elsif _response.status_code == 500
|
201
|
+
raise RequestErrorException.new(
|
202
|
+
'System Error',
|
203
|
+
_response
|
204
|
+
)
|
205
|
+
end
|
206
|
+
validate_response(_response)
|
207
|
+
|
208
|
+
# Return appropriate response type.
|
209
|
+
decoded = APIHelper.json_deserialize(_response.raw_body)
|
210
|
+
Quote.from_hash(decoded)
|
211
|
+
end
|
212
|
+
end
|
213
|
+
end
|