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.
- checksums.yaml +4 -4
- data/LICENSE +28 -175
- data/README.md +38 -525
- data/lib/raas.rb +32 -19
- data/lib/raas/api_helper.rb +146 -54
- data/lib/raas/configuration.rb +22 -30
- data/lib/raas/controllers/accounts_controller.rb +146 -92
- data/lib/raas/controllers/base_controller.rb +32 -29
- data/lib/raas/controllers/catalog_controller.rb +31 -14
- data/lib/raas/controllers/customers_controller.rb +113 -72
- data/lib/raas/controllers/exchange_rates_controller.rb +40 -12
- data/lib/raas/controllers/fund_controller.rb +345 -0
- data/lib/raas/controllers/orders_controller.rb +166 -105
- data/lib/raas/controllers/status_controller.rb +31 -14
- data/lib/raas/exceptions/api_exception.rb +4 -2
- data/lib/raas/exceptions/raas_client_exception.rb +14 -12
- data/lib/raas/exceptions/raas_generic_exception.rb +9 -9
- data/lib/raas/exceptions/raas_server_exception.rb +14 -12
- data/lib/raas/http/auth/basic_auth.rb +7 -4
- data/lib/raas/http/faraday_client.rb +19 -7
- data/lib/raas/http/http_call_back.rb +11 -6
- data/lib/raas/http/http_client.rb +50 -32
- data/lib/raas/http/http_context.rb +5 -2
- data/lib/raas/http/http_method_enum.rb +6 -2
- data/lib/raas/http/http_request.rb +7 -3
- data/lib/raas/http/http_response.rb +3 -1
- data/lib/raas/models/account_model.rb +32 -23
- data/lib/raas/models/account_summary_model.rb +26 -17
- data/lib/raas/models/base_model.rb +11 -9
- data/lib/raas/models/billing_address_model.rb +105 -0
- data/lib/raas/models/brand_model.rb +39 -35
- data/lib/raas/models/catalog_model.rb +15 -13
- data/lib/raas/models/create_account_request_model.rb +14 -14
- data/lib/raas/models/create_credit_card_request_model.rb +96 -0
- data/lib/raas/models/create_customer_request_model.rb +12 -12
- data/lib/raas/models/create_order_request_model.rb +45 -35
- data/lib/raas/models/credit_card_model.rb +124 -0
- data/lib/raas/models/currency_breakdown_model.rb +18 -18
- data/lib/raas/models/customer_model.rb +24 -22
- data/lib/raas/models/deposit_request_model.rb +60 -0
- data/lib/raas/models/deposit_response_model.rb +80 -0
- data/lib/raas/models/exchange_rate_model.rb +18 -17
- data/lib/raas/models/exchange_rate_response_model.rb +17 -15
- data/lib/raas/models/full_name_email_model.rb +42 -0
- data/lib/raas/models/get_deposit_response_model.rb +80 -0
- data/lib/raas/models/get_orders_response_model.rb +16 -14
- data/lib/raas/models/item_model.rb +36 -34
- data/lib/raas/models/name_email_model.rb +14 -14
- data/lib/raas/models/new_credit_card_model.rb +51 -0
- data/lib/raas/models/order_model.rb +124 -92
- data/lib/raas/models/order_summary_model.rb +155 -0
- data/lib/raas/models/page_model.rb +16 -16
- data/lib/raas/models/raas_client_error_model.rb +16 -16
- data/lib/raas/models/raas_server_error_model.rb +12 -12
- data/lib/raas/models/resend_order_response_model.rb +11 -11
- data/lib/raas/models/reward_credential_model.rb +14 -14
- data/lib/raas/models/reward_model.rb +16 -14
- data/lib/raas/models/system_status_response_model.rb +10 -10
- data/lib/raas/models/unregister_credit_card_request_model.rb +51 -0
- data/lib/raas/models/unregister_credit_card_response_model.rb +53 -0
- data/lib/raas/raas_client.rb +36 -25
- data/test/controllers/controller_test_base.rb +31 -0
- data/test/controllers/test_accounts_controller.rb +79 -0
- data/test/controllers/test_catalog_controller.rb +65 -0
- data/test/controllers/test_customers_controller.rb +61 -0
- data/test/controllers/test_exchange_rates_controller.rb +35 -0
- data/test/controllers/test_fund_controller.rb +108 -0
- data/test/controllers/test_orders_controller.rb +86 -0
- data/test/controllers/test_status_controller.rb +27 -0
- data/test/http_response_catcher.rb +16 -0
- data/test/test_helper.rb +91 -0
- metadata +32 -10
@@ -1,98 +1,70 @@
|
|
1
|
-
# This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0
|
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
|
+
# AccountsController
|
4
6
|
class AccountsController < BaseController
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
@instance = AccountsController.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
|
-
#
|
12
|
-
# @param [String] customer_identifier Required parameter: Customer
|
17
|
+
# Retrieves a list of accounts for a given customer
|
18
|
+
# @param [String] customer_identifier Required parameter: Customer
|
19
|
+
# Identifier
|
13
20
|
# @return List of AccountSummaryModel response from the API call
|
14
21
|
def get_accounts_by_customer(customer_identifier)
|
15
22
|
begin
|
16
23
|
@logger.info("get_accounts_by_customer called.")
|
17
|
-
|
18
|
-
# validate required parameters
|
24
|
+
# Validate required parameters.
|
19
25
|
@logger.info("Validating required parameters for get_accounts_by_customer.")
|
20
|
-
validate_parameters(
|
26
|
+
validate_parameters(
|
21
27
|
'customer_identifier' => customer_identifier
|
22
|
-
|
23
|
-
|
24
|
-
# prepare query url
|
28
|
+
)
|
29
|
+
# Prepare query url.
|
25
30
|
@logger.info("Preparing query URL for get_accounts_by_customer.")
|
26
|
-
_query_builder = Configuration.get_base_uri
|
31
|
+
_query_builder = Configuration.get_base_uri
|
27
32
|
_query_builder << '/customers/{customerIdentifier}/accounts'
|
28
|
-
_query_builder = APIHelper.append_url_with_template_parameters
|
33
|
+
_query_builder = APIHelper.append_url_with_template_parameters(
|
34
|
+
_query_builder,
|
29
35
|
'customerIdentifier' => customer_identifier
|
30
|
-
|
36
|
+
)
|
31
37
|
_query_url = APIHelper.clean_url _query_builder
|
32
38
|
|
33
|
-
#
|
39
|
+
# Prepare headers.
|
34
40
|
@logger.info("Preparing headers for get_accounts_by_customer.")
|
35
41
|
_headers = {
|
36
42
|
'accept' => 'application/json'
|
37
43
|
}
|
38
44
|
|
39
|
-
#
|
45
|
+
# Prepare and execute HttpRequest.
|
40
46
|
@logger.info('Preparing and executing HttpRequest for get_accounts_by_customer.')
|
41
|
-
_request = @http_client.get
|
47
|
+
_request = @http_client.get(
|
48
|
+
_query_url,
|
49
|
+
headers: _headers
|
50
|
+
)
|
42
51
|
BasicAuth.apply(_request)
|
43
52
|
_context = execute_request(_request, name: 'get_accounts_by_customer')
|
44
|
-
validate_response(_context)
|
45
53
|
|
46
|
-
#
|
47
|
-
@logger.info("
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
# Get an account
|
58
|
-
# @param [String] account_identifier Required parameter: Account Identifier
|
59
|
-
# @return AccountModel response from the API call
|
60
|
-
def get_account(account_identifier)
|
61
|
-
begin
|
62
|
-
@logger.info("get_account called.")
|
63
|
-
|
64
|
-
# validate required parameters
|
65
|
-
@logger.info("Validating required parameters for get_account.")
|
66
|
-
validate_parameters({
|
67
|
-
'account_identifier' => account_identifier
|
68
|
-
})
|
69
|
-
|
70
|
-
# prepare query url
|
71
|
-
@logger.info("Preparing query URL for get_account.")
|
72
|
-
_query_builder = Configuration.get_base_uri()
|
73
|
-
_query_builder << '/accounts/{accountIdentifier}'
|
74
|
-
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
75
|
-
'accountIdentifier' => account_identifier
|
76
|
-
}
|
77
|
-
_query_url = APIHelper.clean_url _query_builder
|
78
|
-
|
79
|
-
# prepare headers
|
80
|
-
@logger.info("Preparing headers for get_account.")
|
81
|
-
_headers = {
|
82
|
-
'accept' => 'application/json'
|
83
|
-
}
|
84
|
-
|
85
|
-
# prepare and execute HttpRequest
|
86
|
-
@logger.info('Preparing and executing HttpRequest for get_account.')
|
87
|
-
_request = @http_client.get _query_url, headers: _headers
|
88
|
-
BasicAuth.apply(_request)
|
89
|
-
_context = execute_request(_request, name: 'get_account')
|
54
|
+
# Validate response against endpoint and global error codes.
|
55
|
+
@logger.info("Validating response for get_accounts_by_customer.")
|
56
|
+
unless _context.response.status_code.between?(200, 208)
|
57
|
+
raise RaasGenericException.new(
|
58
|
+
'API Error',
|
59
|
+
_context
|
60
|
+
)
|
61
|
+
end
|
90
62
|
validate_response(_context)
|
91
63
|
|
92
|
-
#
|
93
|
-
@logger.info("Returning response for
|
64
|
+
# Return appropriate response type.
|
65
|
+
@logger.info("Returning response for get_accounts_by_customer.")
|
94
66
|
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
95
|
-
|
67
|
+
decoded.map { |element| AccountSummaryModel.from_hash(element) }
|
96
68
|
|
97
69
|
rescue Exception => e
|
98
70
|
@logger.error(e)
|
@@ -100,49 +72,62 @@ module Raas
|
|
100
72
|
end
|
101
73
|
end
|
102
74
|
|
103
|
-
#
|
104
|
-
# @param [String] customer_identifier Required parameter: Customer
|
75
|
+
# Creates an account under a given customer
|
76
|
+
# @param [String] customer_identifier Required parameter: Customer
|
77
|
+
# Identifier
|
105
78
|
# @param [CreateAccountRequestModel] body Required parameter: Request Body
|
106
79
|
# @return AccountModel response from the API call
|
107
80
|
def create_account(customer_identifier,
|
108
81
|
body)
|
109
82
|
begin
|
110
83
|
@logger.info("create_account called.")
|
111
|
-
|
112
|
-
# validate required parameters
|
84
|
+
# Validate required parameters.
|
113
85
|
@logger.info("Validating required parameters for create_account.")
|
114
|
-
validate_parameters(
|
86
|
+
validate_parameters(
|
115
87
|
'customer_identifier' => customer_identifier,
|
116
88
|
'body' => body
|
117
|
-
|
118
|
-
|
119
|
-
# prepare query url
|
89
|
+
)
|
90
|
+
# Prepare query url.
|
120
91
|
@logger.info("Preparing query URL for create_account.")
|
121
|
-
_query_builder = Configuration.get_base_uri
|
92
|
+
_query_builder = Configuration.get_base_uri
|
122
93
|
_query_builder << '/customers/{customerIdentifier}/accounts'
|
123
|
-
_query_builder = APIHelper.append_url_with_template_parameters
|
94
|
+
_query_builder = APIHelper.append_url_with_template_parameters(
|
95
|
+
_query_builder,
|
124
96
|
'customerIdentifier' => customer_identifier
|
125
|
-
|
97
|
+
)
|
126
98
|
_query_url = APIHelper.clean_url _query_builder
|
127
99
|
|
128
|
-
#
|
100
|
+
# Prepare headers.
|
129
101
|
@logger.info("Preparing headers for create_account.")
|
130
102
|
_headers = {
|
131
103
|
'accept' => 'application/json',
|
132
104
|
'content-type' => 'application/json; charset=utf-8'
|
133
105
|
}
|
134
106
|
|
135
|
-
#
|
107
|
+
# Prepare and execute HttpRequest.
|
136
108
|
@logger.info('Preparing and executing HttpRequest for create_account.')
|
137
|
-
_request = @http_client.post
|
109
|
+
_request = @http_client.post(
|
110
|
+
_query_url,
|
111
|
+
headers: _headers,
|
112
|
+
parameters: body.to_json
|
113
|
+
)
|
138
114
|
BasicAuth.apply(_request)
|
139
115
|
_context = execute_request(_request, name: 'create_account')
|
116
|
+
|
117
|
+
# Validate response against endpoint and global error codes.
|
118
|
+
@logger.info("Validating response for create_account.")
|
119
|
+
unless _context.response.status_code.between?(200, 208)
|
120
|
+
raise RaasGenericException.new(
|
121
|
+
'API Error',
|
122
|
+
_context
|
123
|
+
)
|
124
|
+
end
|
140
125
|
validate_response(_context)
|
141
126
|
|
142
|
-
#
|
127
|
+
# Return appropriate response type.
|
143
128
|
@logger.info("Returning response for create_account.")
|
144
129
|
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
145
|
-
|
130
|
+
AccountModel.from_hash(decoded)
|
146
131
|
|
147
132
|
rescue Exception => e
|
148
133
|
@logger.error(e)
|
@@ -150,35 +135,104 @@ module Raas
|
|
150
135
|
end
|
151
136
|
end
|
152
137
|
|
153
|
-
#
|
138
|
+
# Retrieves all accounts under the platform
|
154
139
|
# @return List of AccountModel response from the API call
|
155
140
|
def get_all_accounts
|
156
141
|
begin
|
157
142
|
@logger.info("get_all_accounts called.")
|
158
|
-
|
159
|
-
# prepare query url
|
143
|
+
# Prepare query url.
|
160
144
|
@logger.info("Preparing query URL for get_all_accounts.")
|
161
|
-
_query_builder = Configuration.get_base_uri
|
145
|
+
_query_builder = Configuration.get_base_uri
|
162
146
|
_query_builder << '/accounts'
|
163
147
|
_query_url = APIHelper.clean_url _query_builder
|
164
148
|
|
165
|
-
#
|
149
|
+
# Prepare headers.
|
166
150
|
@logger.info("Preparing headers for get_all_accounts.")
|
167
151
|
_headers = {
|
168
152
|
'accept' => 'application/json'
|
169
153
|
}
|
170
154
|
|
171
|
-
#
|
155
|
+
# Prepare and execute HttpRequest.
|
172
156
|
@logger.info('Preparing and executing HttpRequest for get_all_accounts.')
|
173
|
-
_request = @http_client.get
|
157
|
+
_request = @http_client.get(
|
158
|
+
_query_url,
|
159
|
+
headers: _headers
|
160
|
+
)
|
174
161
|
BasicAuth.apply(_request)
|
175
162
|
_context = execute_request(_request, name: 'get_all_accounts')
|
163
|
+
|
164
|
+
# Validate response against endpoint and global error codes.
|
165
|
+
@logger.info("Validating response for get_all_accounts.")
|
166
|
+
unless _context.response.status_code.between?(200, 208)
|
167
|
+
raise RaasGenericException.new(
|
168
|
+
'API Error',
|
169
|
+
_context
|
170
|
+
)
|
171
|
+
end
|
176
172
|
validate_response(_context)
|
177
173
|
|
178
|
-
#
|
174
|
+
# Return appropriate response type.
|
179
175
|
@logger.info("Returning response for get_all_accounts.")
|
180
176
|
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
181
|
-
|
177
|
+
decoded.map { |element| AccountModel.from_hash(element) }
|
178
|
+
|
179
|
+
rescue Exception => e
|
180
|
+
@logger.error(e)
|
181
|
+
raise e
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
# Retrieves a single account
|
186
|
+
# @param [String] account_identifier Required parameter: Account
|
187
|
+
# Identifier
|
188
|
+
# @return AccountModel response from the API call
|
189
|
+
def get_account(account_identifier)
|
190
|
+
begin
|
191
|
+
@logger.info("get_account called.")
|
192
|
+
# Validate required parameters.
|
193
|
+
@logger.info("Validating required parameters for get_account.")
|
194
|
+
validate_parameters(
|
195
|
+
'account_identifier' => account_identifier
|
196
|
+
)
|
197
|
+
# Prepare query url.
|
198
|
+
@logger.info("Preparing query URL for get_account.")
|
199
|
+
_query_builder = Configuration.get_base_uri
|
200
|
+
_query_builder << '/accounts/{accountIdentifier}'
|
201
|
+
_query_builder = APIHelper.append_url_with_template_parameters(
|
202
|
+
_query_builder,
|
203
|
+
'accountIdentifier' => account_identifier
|
204
|
+
)
|
205
|
+
_query_url = APIHelper.clean_url _query_builder
|
206
|
+
|
207
|
+
# Prepare headers.
|
208
|
+
@logger.info("Preparing headers for get_account.")
|
209
|
+
_headers = {
|
210
|
+
'accept' => 'application/json'
|
211
|
+
}
|
212
|
+
|
213
|
+
# Prepare and execute HttpRequest.
|
214
|
+
@logger.info('Preparing and executing HttpRequest for get_account.')
|
215
|
+
_request = @http_client.get(
|
216
|
+
_query_url,
|
217
|
+
headers: _headers
|
218
|
+
)
|
219
|
+
BasicAuth.apply(_request)
|
220
|
+
_context = execute_request(_request, name: 'get_account')
|
221
|
+
|
222
|
+
# Validate response against endpoint and global error codes.
|
223
|
+
@logger.info("Validating response for get_account.")
|
224
|
+
unless _context.response.status_code.between?(200, 208)
|
225
|
+
raise RaasGenericException.new(
|
226
|
+
'API Error',
|
227
|
+
_context
|
228
|
+
)
|
229
|
+
end
|
230
|
+
validate_response(_context)
|
231
|
+
|
232
|
+
# Return appropriate response type.
|
233
|
+
@logger.info("Returning response for get_account.")
|
234
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
235
|
+
AccountModel.from_hash(decoded)
|
182
236
|
|
183
237
|
rescue Exception => e
|
184
238
|
@logger.error(e)
|
@@ -1,18 +1,18 @@
|
|
1
|
-
# This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0
|
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
|
+
# Base controller.
|
4
6
|
class BaseController
|
5
7
|
attr_accessor :http_client, :http_call_back
|
6
8
|
|
7
|
-
@@http_client = FaradayClient.new(timeout: 15)
|
8
|
-
|
9
|
-
@@global_headers = {
|
10
|
-
'user-agent' => 'TangoCardv2NGSDK'
|
11
|
-
}
|
12
|
-
|
13
9
|
def initialize(http_client: nil, http_call_back: nil)
|
14
|
-
@http_client = http_client
|
10
|
+
@http_client = http_client || FaradayClient.new(timeout: 60)
|
15
11
|
@http_call_back = http_call_back
|
12
|
+
|
13
|
+
@global_headers = {
|
14
|
+
'user-agent' => 'V2NGSDK'
|
15
|
+
}
|
16
16
|
@logger = Logging.logger[self]
|
17
17
|
@logger.info("Instantiated controller class.")
|
18
18
|
end
|
@@ -20,7 +20,7 @@ module Raas
|
|
20
20
|
def validate_parameters(args)
|
21
21
|
args.each do |_name, value|
|
22
22
|
if value.nil?
|
23
|
-
raise ArgumentError
|
23
|
+
raise ArgumentError, "Required parameter #{_name} cannot be nil."
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -31,10 +31,14 @@ module Raas
|
|
31
31
|
|
32
32
|
@logger.info("Merging global headers with endpoint headers for #{name}.")
|
33
33
|
APIHelper.clean_hash(request.headers)
|
34
|
-
request.headers =
|
34
|
+
request.headers = @global_headers.clone.merge(request.headers)
|
35
35
|
|
36
36
|
@logger.debug("Raw request for #{name} is: #{request.inspect}")
|
37
|
-
response = binary
|
37
|
+
response = if binary
|
38
|
+
@http_client.execute_as_binary(request)
|
39
|
+
else
|
40
|
+
@http_client.execute_as_string(request)
|
41
|
+
end
|
38
42
|
@logger.debug("Raw response for #{name} is: #{response.inspect}")
|
39
43
|
@logger.info("Wrapping request and response in a context object for #{name}.")
|
40
44
|
context = HttpContext.new(request, response)
|
@@ -42,27 +46,26 @@ module Raas
|
|
42
46
|
@logger.info("Calling on_after_response method of http_call_back for #{name}.") if @http_call_back
|
43
47
|
@http_call_back.on_after_response(context) if @http_call_back
|
44
48
|
|
45
|
-
|
49
|
+
context
|
46
50
|
end
|
47
51
|
|
48
52
|
def validate_response(context)
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
end
|
53
|
+
raise RaasClientException.new 'Bad Request', context if
|
54
|
+
context.response.status_code == 400
|
55
|
+
raise RaasGenericException.new 'Unauthorized - Invalid Credentials', context if
|
56
|
+
context.response.status_code == 401
|
57
|
+
raise RaasClientException.new 'Forbidden', context if
|
58
|
+
context.response.status_code == 403
|
59
|
+
raise RaasGenericException.new 'Not Found', context if
|
60
|
+
context.response.status_code == 404
|
61
|
+
raise RaasClientException.new 'Conflict', context if
|
62
|
+
context.response.status_code == 409
|
63
|
+
raise RaasServerException.new 'Internal Server Error - Retry Later', context if
|
64
|
+
context.response.status_code == 500
|
65
|
+
raise RaasServerException.new 'Service Unavailable - Retry Later', context if
|
66
|
+
context.response.status_code == 503
|
67
|
+
raise RaasGenericException.new 'API Error', context unless
|
68
|
+
context.response.status_code.between?(200, 208) # [200,208] = HTTP OK
|
66
69
|
end
|
67
70
|
end
|
68
71
|
end
|
@@ -1,42 +1,59 @@
|
|
1
|
-
# This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0
|
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
|
+
# CatalogController
|
4
6
|
class CatalogController < BaseController
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
@instance = CatalogController.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
|
+
# Retrieves a platform's catalog
|
12
18
|
# @return CatalogModel response from the API call
|
13
19
|
def get_catalog
|
14
20
|
begin
|
15
21
|
@logger.info("get_catalog called.")
|
16
|
-
|
17
|
-
# prepare query url
|
22
|
+
# Prepare query url.
|
18
23
|
@logger.info("Preparing query URL for get_catalog.")
|
19
|
-
_query_builder = Configuration.get_base_uri
|
24
|
+
_query_builder = Configuration.get_base_uri
|
20
25
|
_query_builder << '/catalogs'
|
21
26
|
_query_url = APIHelper.clean_url _query_builder
|
22
27
|
|
23
|
-
#
|
28
|
+
# Prepare headers.
|
24
29
|
@logger.info("Preparing headers for get_catalog.")
|
25
30
|
_headers = {
|
26
31
|
'accept' => 'application/json'
|
27
32
|
}
|
28
33
|
|
29
|
-
#
|
34
|
+
# Prepare and execute HttpRequest.
|
30
35
|
@logger.info('Preparing and executing HttpRequest for get_catalog.')
|
31
|
-
_request = @http_client.get
|
36
|
+
_request = @http_client.get(
|
37
|
+
_query_url,
|
38
|
+
headers: _headers
|
39
|
+
)
|
32
40
|
BasicAuth.apply(_request)
|
33
41
|
_context = execute_request(_request, name: 'get_catalog')
|
42
|
+
|
43
|
+
# Validate response against endpoint and global error codes.
|
44
|
+
@logger.info("Validating response for get_catalog.")
|
45
|
+
unless _context.response.status_code.between?(200, 208)
|
46
|
+
raise RaasGenericException.new(
|
47
|
+
'API Error',
|
48
|
+
_context
|
49
|
+
)
|
50
|
+
end
|
34
51
|
validate_response(_context)
|
35
52
|
|
36
|
-
#
|
53
|
+
# Return appropriate response type.
|
37
54
|
@logger.info("Returning response for get_catalog.")
|
38
55
|
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
39
|
-
|
56
|
+
CatalogModel.from_hash(decoded)
|
40
57
|
|
41
58
|
rescue Exception => e
|
42
59
|
@logger.error(e)
|