tangocard-raas 1.1.2 → 2.2.1

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