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