apimatic-ci-cd-test 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +1168 -0
  4. data/lib/payments_api.rb +49 -0
  5. data/lib/payments_api/api_helper.rb +277 -0
  6. data/lib/payments_api/client.rb +42 -0
  7. data/lib/payments_api/configuration.rb +116 -0
  8. data/lib/payments_api/controllers/base_controller.rb +49 -0
  9. data/lib/payments_api/controllers/payments_controller.rb +272 -0
  10. data/lib/payments_api/controllers/quotes_controller.rb +213 -0
  11. data/lib/payments_api/exceptions/api_exception.rb +20 -0
  12. data/lib/payments_api/exceptions/request_error_exception.rb +29 -0
  13. data/lib/payments_api/http/auth/custom_header_auth.rb +16 -0
  14. data/lib/payments_api/http/faraday_client.rb +70 -0
  15. data/lib/payments_api/http/http_call_back.rb +24 -0
  16. data/lib/payments_api/http/http_client.rb +104 -0
  17. data/lib/payments_api/http/http_method_enum.rb +13 -0
  18. data/lib/payments_api/http/http_request.rb +50 -0
  19. data/lib/payments_api/http/http_response.rb +29 -0
  20. data/lib/payments_api/models/address.rb +80 -0
  21. data/lib/payments_api/models/bank.rb +63 -0
  22. data/lib/payments_api/models/bank_account.rb +48 -0
  23. data/lib/payments_api/models/base_model.rb +47 -0
  24. data/lib/payments_api/models/beneficiary.rb +62 -0
  25. data/lib/payments_api/models/originator.rb +44 -0
  26. data/lib/payments_api/models/payment.rb +127 -0
  27. data/lib/payments_api/models/payment_details.rb +53 -0
  28. data/lib/payments_api/models/payment_status.rb +44 -0
  29. data/lib/payments_api/models/quote.rb +104 -0
  30. data/lib/payments_api/utilities/date_time_helper.rb +156 -0
  31. data/lib/payments_api/utilities/file_wrapper.rb +17 -0
  32. 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