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.
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