tangocard-raas 1.1.2 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +28 -175
  3. data/README.md +38 -525
  4. data/lib/raas.rb +32 -19
  5. data/lib/raas/api_helper.rb +146 -54
  6. data/lib/raas/configuration.rb +22 -30
  7. data/lib/raas/controllers/accounts_controller.rb +146 -92
  8. data/lib/raas/controllers/base_controller.rb +32 -29
  9. data/lib/raas/controllers/catalog_controller.rb +31 -14
  10. data/lib/raas/controllers/customers_controller.rb +113 -72
  11. data/lib/raas/controllers/exchange_rates_controller.rb +40 -12
  12. data/lib/raas/controllers/fund_controller.rb +345 -0
  13. data/lib/raas/controllers/orders_controller.rb +166 -105
  14. data/lib/raas/controllers/status_controller.rb +31 -14
  15. data/lib/raas/exceptions/api_exception.rb +4 -2
  16. data/lib/raas/exceptions/raas_client_exception.rb +14 -12
  17. data/lib/raas/exceptions/raas_generic_exception.rb +9 -9
  18. data/lib/raas/exceptions/raas_server_exception.rb +14 -12
  19. data/lib/raas/http/auth/basic_auth.rb +7 -4
  20. data/lib/raas/http/faraday_client.rb +19 -7
  21. data/lib/raas/http/http_call_back.rb +11 -6
  22. data/lib/raas/http/http_client.rb +50 -32
  23. data/lib/raas/http/http_context.rb +5 -2
  24. data/lib/raas/http/http_method_enum.rb +6 -2
  25. data/lib/raas/http/http_request.rb +7 -3
  26. data/lib/raas/http/http_response.rb +3 -1
  27. data/lib/raas/models/account_model.rb +32 -23
  28. data/lib/raas/models/account_summary_model.rb +26 -17
  29. data/lib/raas/models/base_model.rb +11 -9
  30. data/lib/raas/models/billing_address_model.rb +105 -0
  31. data/lib/raas/models/brand_model.rb +39 -35
  32. data/lib/raas/models/catalog_model.rb +15 -13
  33. data/lib/raas/models/create_account_request_model.rb +14 -14
  34. data/lib/raas/models/create_credit_card_request_model.rb +96 -0
  35. data/lib/raas/models/create_customer_request_model.rb +12 -12
  36. data/lib/raas/models/create_order_request_model.rb +45 -35
  37. data/lib/raas/models/credit_card_model.rb +124 -0
  38. data/lib/raas/models/currency_breakdown_model.rb +18 -18
  39. data/lib/raas/models/customer_model.rb +24 -22
  40. data/lib/raas/models/deposit_request_model.rb +60 -0
  41. data/lib/raas/models/deposit_response_model.rb +80 -0
  42. data/lib/raas/models/exchange_rate_model.rb +18 -17
  43. data/lib/raas/models/exchange_rate_response_model.rb +17 -15
  44. data/lib/raas/models/full_name_email_model.rb +42 -0
  45. data/lib/raas/models/get_deposit_response_model.rb +80 -0
  46. data/lib/raas/models/get_orders_response_model.rb +16 -14
  47. data/lib/raas/models/item_model.rb +36 -34
  48. data/lib/raas/models/name_email_model.rb +14 -14
  49. data/lib/raas/models/new_credit_card_model.rb +51 -0
  50. data/lib/raas/models/order_model.rb +124 -92
  51. data/lib/raas/models/order_summary_model.rb +155 -0
  52. data/lib/raas/models/page_model.rb +16 -16
  53. data/lib/raas/models/raas_client_error_model.rb +16 -16
  54. data/lib/raas/models/raas_server_error_model.rb +12 -12
  55. data/lib/raas/models/resend_order_response_model.rb +11 -11
  56. data/lib/raas/models/reward_credential_model.rb +14 -14
  57. data/lib/raas/models/reward_model.rb +16 -14
  58. data/lib/raas/models/system_status_response_model.rb +10 -10
  59. data/lib/raas/models/unregister_credit_card_request_model.rb +51 -0
  60. data/lib/raas/models/unregister_credit_card_response_model.rb +53 -0
  61. data/lib/raas/raas_client.rb +36 -25
  62. data/test/controllers/controller_test_base.rb +31 -0
  63. data/test/controllers/test_accounts_controller.rb +79 -0
  64. data/test/controllers/test_catalog_controller.rb +65 -0
  65. data/test/controllers/test_customers_controller.rb +61 -0
  66. data/test/controllers/test_exchange_rates_controller.rb +35 -0
  67. data/test/controllers/test_fund_controller.rb +108 -0
  68. data/test/controllers/test_orders_controller.rb +86 -0
  69. data/test/controllers/test_status_controller.rb +27 -0
  70. data/test/http_response_catcher.rb +16 -0
  71. data/test/test_helper.rb +91 -0
  72. metadata +32 -10
@@ -1,96 +1,68 @@
1
- # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
1
+ # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0
2
+ # ( https://apimatic.io ).
2
3
 
3
4
  module Raas
5
+ # CustomersController
4
6
  class CustomersController < BaseController
5
- @@instance = CustomersController.new
6
- # Singleton instance of the controller class
7
- def self.instance
8
- @@instance
9
- end
7
+ @instance = CustomersController.new
10
8
 
11
- # Get a customer
12
- # @param [String] customer_identifier Required parameter: Customer Identifier
13
- # @return CustomerModel response from the API call
14
- def get_customer(customer_identifier)
15
- begin
16
- @logger.info("get_customer called.")
17
-
18
- # validate required parameters
19
- @logger.info("Validating required parameters for get_customer.")
20
- validate_parameters({
21
- 'customer_identifier' => customer_identifier
22
- })
23
-
24
- # prepare query url
25
- @logger.info("Preparing query URL for get_customer.")
26
- _query_builder = Configuration.get_base_uri()
27
- _query_builder << '/customers/{customerIdentifier}'
28
- _query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
29
- 'customerIdentifier' => customer_identifier
30
- }
31
- _query_url = APIHelper.clean_url _query_builder
32
-
33
- # prepare headers
34
- @logger.info("Preparing headers for get_customer.")
35
- _headers = {
36
- 'accept' => 'application/json'
37
- }
38
-
39
- # prepare and execute HttpRequest
40
- @logger.info('Preparing and executing HttpRequest for get_customer.')
41
- _request = @http_client.get _query_url, headers: _headers
42
- BasicAuth.apply(_request)
43
- _context = execute_request(_request, name: 'get_customer')
44
- validate_response(_context)
45
-
46
- # return appropriate response type
47
- @logger.info("Returning response for get_customer.")
48
- decoded = APIHelper.json_deserialize(_context.response.raw_body)
49
- return CustomerModel.from_hash(decoded)
9
+ class << self
10
+ attr_accessor :instance
11
+ end
50
12
 
51
- rescue Exception => e
52
- @logger.error(e)
53
- raise e
54
- end
13
+ def instance
14
+ self.class.instance
55
15
  end
56
16
 
57
- # Create a new customer
58
- # @param [CreateCustomerRequestModel] body Required parameter: Request Body
17
+ # Creates a new customer
18
+ # @param [CreateCustomerRequestModel] body Required parameter: Request
19
+ # Body
59
20
  # @return CustomerModel response from the API call
60
21
  def create_customer(body)
61
22
  begin
62
23
  @logger.info("create_customer called.")
63
-
64
- # validate required parameters
24
+ # Validate required parameters.
65
25
  @logger.info("Validating required parameters for create_customer.")
66
- validate_parameters({
26
+ validate_parameters(
67
27
  'body' => body
68
- })
69
-
70
- # prepare query url
28
+ )
29
+ # Prepare query url.
71
30
  @logger.info("Preparing query URL for create_customer.")
72
- _query_builder = Configuration.get_base_uri()
31
+ _query_builder = Configuration.get_base_uri
73
32
  _query_builder << '/customers'
74
33
  _query_url = APIHelper.clean_url _query_builder
75
34
 
76
- # prepare headers
35
+ # Prepare headers.
77
36
  @logger.info("Preparing headers for create_customer.")
78
37
  _headers = {
79
38
  'accept' => 'application/json',
80
39
  'content-type' => 'application/json; charset=utf-8'
81
40
  }
82
41
 
83
- # prepare and execute HttpRequest
42
+ # Prepare and execute HttpRequest.
84
43
  @logger.info('Preparing and executing HttpRequest for create_customer.')
85
- _request = @http_client.post _query_url, headers: _headers, parameters: body.to_json
44
+ _request = @http_client.post(
45
+ _query_url,
46
+ headers: _headers,
47
+ parameters: body.to_json
48
+ )
86
49
  BasicAuth.apply(_request)
87
50
  _context = execute_request(_request, name: 'create_customer')
51
+
52
+ # Validate response against endpoint and global error codes.
53
+ @logger.info("Validating response for create_customer.")
54
+ unless _context.response.status_code.between?(200, 208)
55
+ raise RaasGenericException.new(
56
+ 'API Error',
57
+ _context
58
+ )
59
+ end
88
60
  validate_response(_context)
89
61
 
90
- # return appropriate response type
62
+ # Return appropriate response type.
91
63
  @logger.info("Returning response for create_customer.")
92
64
  decoded = APIHelper.json_deserialize(_context.response.raw_body)
93
- return CustomerModel.from_hash(decoded)
65
+ CustomerModel.from_hash(decoded)
94
66
 
95
67
  rescue Exception => e
96
68
  @logger.error(e)
@@ -98,35 +70,104 @@ module Raas
98
70
  end
99
71
  end
100
72
 
101
- # Gets all customers under the platform
73
+ # Retrieves all customers under the platform
102
74
  # @return List of CustomerModel response from the API call
103
75
  def get_all_customers
104
76
  begin
105
77
  @logger.info("get_all_customers called.")
106
-
107
- # prepare query url
78
+ # Prepare query url.
108
79
  @logger.info("Preparing query URL for get_all_customers.")
109
- _query_builder = Configuration.get_base_uri()
80
+ _query_builder = Configuration.get_base_uri
110
81
  _query_builder << '/customers'
111
82
  _query_url = APIHelper.clean_url _query_builder
112
83
 
113
- # prepare headers
84
+ # Prepare headers.
114
85
  @logger.info("Preparing headers for get_all_customers.")
115
86
  _headers = {
116
87
  'accept' => 'application/json'
117
88
  }
118
89
 
119
- # prepare and execute HttpRequest
90
+ # Prepare and execute HttpRequest.
120
91
  @logger.info('Preparing and executing HttpRequest for get_all_customers.')
121
- _request = @http_client.get _query_url, headers: _headers
92
+ _request = @http_client.get(
93
+ _query_url,
94
+ headers: _headers
95
+ )
122
96
  BasicAuth.apply(_request)
123
97
  _context = execute_request(_request, name: 'get_all_customers')
98
+
99
+ # Validate response against endpoint and global error codes.
100
+ @logger.info("Validating response for get_all_customers.")
101
+ unless _context.response.status_code.between?(200, 208)
102
+ raise RaasGenericException.new(
103
+ 'API Error',
104
+ _context
105
+ )
106
+ end
124
107
  validate_response(_context)
125
108
 
126
- # return appropriate response type
109
+ # Return appropriate response type.
127
110
  @logger.info("Returning response for get_all_customers.")
128
111
  decoded = APIHelper.json_deserialize(_context.response.raw_body)
129
- return decoded.map{|element| CustomerModel.from_hash(element)}
112
+ decoded.map { |element| CustomerModel.from_hash(element) }
113
+
114
+ rescue Exception => e
115
+ @logger.error(e)
116
+ raise e
117
+ end
118
+ end
119
+
120
+ # Retrieves a single customer
121
+ # @param [String] customer_identifier Required parameter: Customer
122
+ # Identifier
123
+ # @return CustomerModel response from the API call
124
+ def get_customer(customer_identifier)
125
+ begin
126
+ @logger.info("get_customer called.")
127
+ # Validate required parameters.
128
+ @logger.info("Validating required parameters for get_customer.")
129
+ validate_parameters(
130
+ 'customer_identifier' => customer_identifier
131
+ )
132
+ # Prepare query url.
133
+ @logger.info("Preparing query URL for get_customer.")
134
+ _query_builder = Configuration.get_base_uri
135
+ _query_builder << '/customers/{customerIdentifier}'
136
+ _query_builder = APIHelper.append_url_with_template_parameters(
137
+ _query_builder,
138
+ 'customerIdentifier' => customer_identifier
139
+ )
140
+ _query_url = APIHelper.clean_url _query_builder
141
+
142
+ # Prepare headers.
143
+ @logger.info("Preparing headers for get_customer.")
144
+ _headers = {
145
+ 'accept' => 'application/json'
146
+ }
147
+
148
+ # Prepare and execute HttpRequest.
149
+ @logger.info('Preparing and executing HttpRequest for get_customer.')
150
+ _request = @http_client.get(
151
+ _query_url,
152
+ headers: _headers
153
+ )
154
+ BasicAuth.apply(_request)
155
+ _context = execute_request(_request, name: 'get_customer')
156
+
157
+ # Validate response against endpoint and global error codes.
158
+ @logger.info("Validating response for get_customer.")
159
+ unless _context.response.status_code.between?(200, 208)
160
+ raise RaasGenericException.new(
161
+ 'API Error',
162
+ _context
163
+ )
164
+ end
165
+ validate_response(_context)
166
+
167
+ # Return appropriate response type.
168
+ @logger.info("Returning response for get_customer.")
169
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
170
+ CustomerModel.from_hash(decoded)
130
171
 
131
172
  rescue Exception => e
132
173
  @logger.error(e)
@@ -1,31 +1,59 @@
1
- # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
1
+ # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0
2
+ # ( https://apimatic.io ).
2
3
 
3
4
  module Raas
5
+ # ExchangeRatesController
4
6
  class ExchangeRatesController < BaseController
5
- @@instance = ExchangeRatesController.new
6
- # Singleton instance of the controller class
7
- def self.instance
8
- @@instance
7
+ @instance = ExchangeRatesController.new
8
+
9
+ class << self
10
+ attr_accessor :instance
11
+ end
12
+
13
+ def instance
14
+ self.class.instance
9
15
  end
10
16
 
11
17
  # Retrieve current exchange rates
12
- # @return void response from the API call
18
+ # @return ExchangeRateResponseModel response from the API call
13
19
  def get_exchange_rates
14
20
  begin
15
21
  @logger.info("get_exchange_rates called.")
16
-
17
- # prepare query url
22
+ # Prepare query url.
18
23
  @logger.info("Preparing query URL for get_exchange_rates.")
19
- _query_builder = Configuration.get_base_uri()
20
- _query_builder << '/exchangerate'
24
+ _query_builder = Configuration.get_base_uri
25
+ _query_builder << '/exchangerates'
21
26
  _query_url = APIHelper.clean_url _query_builder
22
27
 
23
- # prepare and execute HttpRequest
28
+ # Prepare headers.
29
+ @logger.info("Preparing headers for get_exchange_rates.")
30
+ _headers = {
31
+ 'accept' => 'application/json'
32
+ }
33
+
34
+ # Prepare and execute HttpRequest.
24
35
  @logger.info('Preparing and executing HttpRequest for get_exchange_rates.')
25
- _request = @http_client.get _query_url
36
+ _request = @http_client.get(
37
+ _query_url,
38
+ headers: _headers
39
+ )
26
40
  BasicAuth.apply(_request)
27
41
  _context = execute_request(_request, name: 'get_exchange_rates')
42
+
43
+ # Validate response against endpoint and global error codes.
44
+ @logger.info("Validating response for get_exchange_rates.")
45
+ unless _context.response.status_code.between?(200, 208)
46
+ raise RaasGenericException.new(
47
+ 'API Error',
48
+ _context
49
+ )
50
+ end
28
51
  validate_response(_context)
52
+
53
+ # Return appropriate response type.
54
+ @logger.info("Returning response for get_exchange_rates.")
55
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
56
+ ExchangeRateResponseModel.from_hash(decoded)
29
57
 
30
58
  rescue Exception => e
31
59
  @logger.error(e)
@@ -0,0 +1,345 @@
1
+ # This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0
2
+ # ( https://apimatic.io ).
3
+
4
+ module Raas
5
+ # FundController
6
+ class FundController < BaseController
7
+ @instance = FundController.new
8
+
9
+ class << self
10
+ attr_accessor :instance
11
+ end
12
+
13
+ def instance
14
+ self.class.instance
15
+ end
16
+
17
+ # Unregister a credit card
18
+ # @param [UnregisterCreditCardRequestModel] body Required parameter:
19
+ # Example:
20
+ # @return UnregisterCreditCardResponseModel response from the API call
21
+ def create_unregister_credit_card(body)
22
+ begin
23
+ @logger.info("create_unregister_credit_card called.")
24
+ # Validate required parameters.
25
+ @logger.info("Validating required parameters for create_unregister_credit_card.")
26
+ validate_parameters(
27
+ 'body' => body
28
+ )
29
+ # Prepare query url.
30
+ @logger.info("Preparing query URL for create_unregister_credit_card.")
31
+ _query_builder = Configuration.get_base_uri
32
+ _query_builder << '/creditCardUnregisters'
33
+ _query_url = APIHelper.clean_url _query_builder
34
+
35
+ # Prepare headers.
36
+ @logger.info("Preparing headers for create_unregister_credit_card.")
37
+ _headers = {
38
+ 'accept' => 'application/json',
39
+ 'content-type' => 'application/json; charset=utf-8'
40
+ }
41
+
42
+ # Prepare and execute HttpRequest.
43
+ @logger.info('Preparing and executing HttpRequest for create_unregister_credit_card.')
44
+ _request = @http_client.post(
45
+ _query_url,
46
+ headers: _headers,
47
+ parameters: body.to_json
48
+ )
49
+ BasicAuth.apply(_request)
50
+ _context = execute_request(_request, name: 'create_unregister_credit_card')
51
+
52
+ # Validate response against endpoint and global error codes.
53
+ @logger.info("Validating response for create_unregister_credit_card.")
54
+ unless _context.response.status_code.between?(200, 208)
55
+ raise RaasGenericException.new(
56
+ 'API Error',
57
+ _context
58
+ )
59
+ end
60
+ validate_response(_context)
61
+
62
+ # Return appropriate response type.
63
+ @logger.info("Returning response for create_unregister_credit_card.")
64
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
65
+ UnregisterCreditCardResponseModel.from_hash(decoded)
66
+
67
+ rescue Exception => e
68
+ @logger.error(e)
69
+ raise e
70
+ end
71
+ end
72
+
73
+ # Get details for a specific credit card deposit
74
+ # @param [String] deposit_id Required parameter: The reference deposit id
75
+ # @return GetDepositResponseModel response from the API call
76
+ def get_deposit(deposit_id)
77
+ begin
78
+ @logger.info("get_deposit called.")
79
+ # Validate required parameters.
80
+ @logger.info("Validating required parameters for get_deposit.")
81
+ validate_parameters(
82
+ 'deposit_id' => deposit_id
83
+ )
84
+ # Prepare query url.
85
+ @logger.info("Preparing query URL for get_deposit.")
86
+ _query_builder = Configuration.get_base_uri
87
+ _query_builder << '/creditCardDeposits/{depositId}'
88
+ _query_builder = APIHelper.append_url_with_template_parameters(
89
+ _query_builder,
90
+ 'depositId' => deposit_id
91
+ )
92
+ _query_url = APIHelper.clean_url _query_builder
93
+
94
+ # Prepare headers.
95
+ @logger.info("Preparing headers for get_deposit.")
96
+ _headers = {
97
+ 'accept' => 'application/json'
98
+ }
99
+
100
+ # Prepare and execute HttpRequest.
101
+ @logger.info('Preparing and executing HttpRequest for get_deposit.')
102
+ _request = @http_client.get(
103
+ _query_url,
104
+ headers: _headers
105
+ )
106
+ BasicAuth.apply(_request)
107
+ _context = execute_request(_request, name: 'get_deposit')
108
+
109
+ # Validate response against endpoint and global error codes.
110
+ @logger.info("Validating response for get_deposit.")
111
+ unless _context.response.status_code.between?(200, 208)
112
+ raise RaasGenericException.new(
113
+ 'API Error',
114
+ _context
115
+ )
116
+ end
117
+ validate_response(_context)
118
+
119
+ # Return appropriate response type.
120
+ @logger.info("Returning response for get_deposit.")
121
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
122
+ GetDepositResponseModel.from_hash(decoded)
123
+
124
+ rescue Exception => e
125
+ @logger.error(e)
126
+ raise e
127
+ end
128
+ end
129
+
130
+ # Funds an account via credit card
131
+ # @param [DepositRequestModel] body Required parameter: Example:
132
+ # @return DepositResponseModel response from the API call
133
+ def add_funds(body)
134
+ begin
135
+ @logger.info("add_funds called.")
136
+ # Validate required parameters.
137
+ @logger.info("Validating required parameters for add_funds.")
138
+ validate_parameters(
139
+ 'body' => body
140
+ )
141
+ # Prepare query url.
142
+ @logger.info("Preparing query URL for add_funds.")
143
+ _query_builder = Configuration.get_base_uri
144
+ _query_builder << '/creditCardDeposits'
145
+ _query_url = APIHelper.clean_url _query_builder
146
+
147
+ # Prepare headers.
148
+ @logger.info("Preparing headers for add_funds.")
149
+ _headers = {
150
+ 'accept' => 'application/json',
151
+ 'content-type' => 'application/json; charset=utf-8'
152
+ }
153
+
154
+ # Prepare and execute HttpRequest.
155
+ @logger.info('Preparing and executing HttpRequest for add_funds.')
156
+ _request = @http_client.post(
157
+ _query_url,
158
+ headers: _headers,
159
+ parameters: body.to_json
160
+ )
161
+ BasicAuth.apply(_request)
162
+ _context = execute_request(_request, name: 'add_funds')
163
+
164
+ # Validate response against endpoint and global error codes.
165
+ @logger.info("Validating response for add_funds.")
166
+ unless _context.response.status_code.between?(200, 208)
167
+ raise RaasGenericException.new(
168
+ 'API Error',
169
+ _context
170
+ )
171
+ end
172
+ validate_response(_context)
173
+
174
+ # Return appropriate response type.
175
+ @logger.info("Returning response for add_funds.")
176
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
177
+ DepositResponseModel.from_hash(decoded)
178
+
179
+ rescue Exception => e
180
+ @logger.error(e)
181
+ raise e
182
+ end
183
+ end
184
+
185
+ # Retrieves all credit cards registered on the platform
186
+ # @return List of CreditCardModel response from the API call
187
+ def get_credit_cards
188
+ begin
189
+ @logger.info("get_credit_cards called.")
190
+ # Prepare query url.
191
+ @logger.info("Preparing query URL for get_credit_cards.")
192
+ _query_builder = Configuration.get_base_uri
193
+ _query_builder << '/creditCards'
194
+ _query_url = APIHelper.clean_url _query_builder
195
+
196
+ # Prepare headers.
197
+ @logger.info("Preparing headers for get_credit_cards.")
198
+ _headers = {
199
+ 'accept' => 'application/json'
200
+ }
201
+
202
+ # Prepare and execute HttpRequest.
203
+ @logger.info('Preparing and executing HttpRequest for get_credit_cards.')
204
+ _request = @http_client.get(
205
+ _query_url,
206
+ headers: _headers
207
+ )
208
+ BasicAuth.apply(_request)
209
+ _context = execute_request(_request, name: 'get_credit_cards')
210
+
211
+ # Validate response against endpoint and global error codes.
212
+ @logger.info("Validating response for get_credit_cards.")
213
+ unless _context.response.status_code.between?(200, 208)
214
+ raise RaasGenericException.new(
215
+ 'API Error',
216
+ _context
217
+ )
218
+ end
219
+ validate_response(_context)
220
+
221
+ # Return appropriate response type.
222
+ @logger.info("Returning response for get_credit_cards.")
223
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
224
+ decoded.map { |element| CreditCardModel.from_hash(element) }
225
+
226
+ rescue Exception => e
227
+ @logger.error(e)
228
+ raise e
229
+ end
230
+ end
231
+
232
+ # Retrieves details for a single credit card
233
+ # @param [String] token Required parameter: Credit Card Token
234
+ # @return CreditCardModel response from the API call
235
+ def get_credit_card(token)
236
+ begin
237
+ @logger.info("get_credit_card called.")
238
+ # Validate required parameters.
239
+ @logger.info("Validating required parameters for get_credit_card.")
240
+ validate_parameters(
241
+ 'token' => token
242
+ )
243
+ # Prepare query url.
244
+ @logger.info("Preparing query URL for get_credit_card.")
245
+ _query_builder = Configuration.get_base_uri
246
+ _query_builder << '/creditCards/{token}'
247
+ _query_builder = APIHelper.append_url_with_template_parameters(
248
+ _query_builder,
249
+ 'token' => token
250
+ )
251
+ _query_url = APIHelper.clean_url _query_builder
252
+
253
+ # Prepare headers.
254
+ @logger.info("Preparing headers for get_credit_card.")
255
+ _headers = {
256
+ 'accept' => 'application/json'
257
+ }
258
+
259
+ # Prepare and execute HttpRequest.
260
+ @logger.info('Preparing and executing HttpRequest for get_credit_card.')
261
+ _request = @http_client.get(
262
+ _query_url,
263
+ headers: _headers
264
+ )
265
+ BasicAuth.apply(_request)
266
+ _context = execute_request(_request, name: 'get_credit_card')
267
+
268
+ # Validate response against endpoint and global error codes.
269
+ @logger.info("Validating response for get_credit_card.")
270
+ unless _context.response.status_code.between?(200, 208)
271
+ raise RaasGenericException.new(
272
+ 'API Error',
273
+ _context
274
+ )
275
+ end
276
+ validate_response(_context)
277
+
278
+ # Return appropriate response type.
279
+ @logger.info("Returning response for get_credit_card.")
280
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
281
+ CreditCardModel.from_hash(decoded)
282
+
283
+ rescue Exception => e
284
+ @logger.error(e)
285
+ raise e
286
+ end
287
+ end
288
+
289
+ # Registers a new credit card
290
+ # @param [CreateCreditCardRequestModel] body Required parameter: A
291
+ # CreateCreditCardRequest object
292
+ # @return CreditCardModel response from the API call
293
+ def create_register_credit_card(body)
294
+ begin
295
+ @logger.info("create_register_credit_card called.")
296
+ # Validate required parameters.
297
+ @logger.info("Validating required parameters for create_register_credit_card.")
298
+ validate_parameters(
299
+ 'body' => body
300
+ )
301
+ # Prepare query url.
302
+ @logger.info("Preparing query URL for create_register_credit_card.")
303
+ _query_builder = Configuration.get_base_uri
304
+ _query_builder << '/creditCards'
305
+ _query_url = APIHelper.clean_url _query_builder
306
+
307
+ # Prepare headers.
308
+ @logger.info("Preparing headers for create_register_credit_card.")
309
+ _headers = {
310
+ 'accept' => 'application/json',
311
+ 'content-type' => 'application/json; charset=utf-8'
312
+ }
313
+
314
+ # Prepare and execute HttpRequest.
315
+ @logger.info('Preparing and executing HttpRequest for create_register_credit_card.')
316
+ _request = @http_client.post(
317
+ _query_url,
318
+ headers: _headers,
319
+ parameters: body.to_json
320
+ )
321
+ BasicAuth.apply(_request)
322
+ _context = execute_request(_request, name: 'create_register_credit_card')
323
+
324
+ # Validate response against endpoint and global error codes.
325
+ @logger.info("Validating response for create_register_credit_card.")
326
+ unless _context.response.status_code.between?(200, 208)
327
+ raise RaasGenericException.new(
328
+ 'API Error',
329
+ _context
330
+ )
331
+ end
332
+ validate_response(_context)
333
+
334
+ # Return appropriate response type.
335
+ @logger.info("Returning response for create_register_credit_card.")
336
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
337
+ CreditCardModel.from_hash(decoded)
338
+
339
+ rescue Exception => e
340
+ @logger.error(e)
341
+ raise e
342
+ end
343
+ end
344
+ end
345
+ end