tangocard-raas 1.1.2
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 +7 -0
- data/LICENSE +175 -0
- data/README.md +542 -0
- data/lib/raas.rb +61 -0
- data/lib/raas/api_helper.rb +181 -0
- data/lib/raas/configuration.rb +72 -0
- data/lib/raas/controllers/accounts_controller.rb +189 -0
- data/lib/raas/controllers/base_controller.rb +68 -0
- data/lib/raas/controllers/catalog_controller.rb +47 -0
- data/lib/raas/controllers/customers_controller.rb +137 -0
- data/lib/raas/controllers/exchange_rates_controller.rb +36 -0
- data/lib/raas/controllers/orders_controller.rb +199 -0
- data/lib/raas/controllers/status_controller.rb +46 -0
- data/lib/raas/exceptions/api_exception.rb +16 -0
- data/lib/raas/exceptions/raas_client_exception.rb +58 -0
- data/lib/raas/exceptions/raas_generic_exception.rb +53 -0
- data/lib/raas/exceptions/raas_server_exception.rb +58 -0
- data/lib/raas/http/auth/basic_auth.rb +17 -0
- data/lib/raas/http/faraday_client.rb +43 -0
- data/lib/raas/http/http_call_back.rb +17 -0
- data/lib/raas/http/http_client.rb +84 -0
- data/lib/raas/http/http_context.rb +15 -0
- data/lib/raas/http/http_method_enum.rb +7 -0
- data/lib/raas/http/http_request.rb +44 -0
- data/lib/raas/http/http_response.rb +19 -0
- data/lib/raas/models/account_model.rb +88 -0
- data/lib/raas/models/account_summary_model.rb +61 -0
- data/lib/raas/models/base_model.rb +32 -0
- data/lib/raas/models/brand_model.rb +129 -0
- data/lib/raas/models/catalog_model.rb +47 -0
- data/lib/raas/models/create_account_request_model.rb +51 -0
- data/lib/raas/models/create_customer_request_model.rb +42 -0
- data/lib/raas/models/create_order_request_model.rb +132 -0
- data/lib/raas/models/currency_breakdown_model.rb +69 -0
- data/lib/raas/models/customer_model.rb +75 -0
- data/lib/raas/models/exchange_rate_model.rb +61 -0
- data/lib/raas/models/exchange_rate_response_model.rb +47 -0
- data/lib/raas/models/get_orders_response_model.rb +47 -0
- data/lib/raas/models/item_model.rb +133 -0
- data/lib/raas/models/name_email_model.rb +51 -0
- data/lib/raas/models/order_model.rb +187 -0
- data/lib/raas/models/page_model.rb +60 -0
- data/lib/raas/models/raas_client_error_model.rb +60 -0
- data/lib/raas/models/raas_server_error_model.rb +42 -0
- data/lib/raas/models/resend_order_response_model.rb +43 -0
- data/lib/raas/models/reward_credential_model.rb +51 -0
- data/lib/raas/models/reward_model.rb +56 -0
- data/lib/raas/models/system_status_response_model.rb +33 -0
- data/lib/raas/raas_client.rb +53 -0
- metadata +175 -0
@@ -0,0 +1,68 @@
|
|
1
|
+
# This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
|
2
|
+
|
3
|
+
module Raas
|
4
|
+
class BaseController
|
5
|
+
attr_accessor :http_client, :http_call_back
|
6
|
+
|
7
|
+
@@http_client = FaradayClient.new(timeout: 15)
|
8
|
+
|
9
|
+
@@global_headers = {
|
10
|
+
'user-agent' => 'TangoCardv2NGSDK'
|
11
|
+
}
|
12
|
+
|
13
|
+
def initialize(http_client: nil, http_call_back: nil)
|
14
|
+
@http_client = http_client ||= @@http_client
|
15
|
+
@http_call_back = http_call_back
|
16
|
+
@logger = Logging.logger[self]
|
17
|
+
@logger.info("Instantiated controller class.")
|
18
|
+
end
|
19
|
+
|
20
|
+
def validate_parameters(args)
|
21
|
+
args.each do |_name, value|
|
22
|
+
if value.nil?
|
23
|
+
raise ArgumentError.new 'Required parameter #{name} cannot be nil.'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def execute_request(request, binary: false, name: nil)
|
29
|
+
@logger.info("Calling the on_before_request method of http_call_back for #{name}.") if @http_call_back
|
30
|
+
@http_call_back.on_before_request(request) if @http_call_back
|
31
|
+
|
32
|
+
@logger.info("Merging global headers with endpoint headers for #{name}.")
|
33
|
+
APIHelper.clean_hash(request.headers)
|
34
|
+
request.headers = @@global_headers.clone.merge(request.headers)
|
35
|
+
|
36
|
+
@logger.debug("Raw request for #{name} is: #{request.inspect}")
|
37
|
+
response = binary ? @http_client.execute_as_binary(request) : @http_client.execute_as_string(request)
|
38
|
+
@logger.debug("Raw response for #{name} is: #{response.inspect}")
|
39
|
+
@logger.info("Wrapping request and response in a context object for #{name}.")
|
40
|
+
context = HttpContext.new(request, response)
|
41
|
+
|
42
|
+
@logger.info("Calling on_after_response method of http_call_back for #{name}.") if @http_call_back
|
43
|
+
@http_call_back.on_after_response(context) if @http_call_back
|
44
|
+
|
45
|
+
return context
|
46
|
+
end
|
47
|
+
|
48
|
+
def validate_response(context)
|
49
|
+
if context.response.status_code == 400
|
50
|
+
raise RaasClientException.new 'Bad Request', context
|
51
|
+
elsif context.response.status_code == 401
|
52
|
+
raise RaasGenericException.new 'Unauthorized - Invalid Credentials', context
|
53
|
+
elsif context.response.status_code == 403
|
54
|
+
raise RaasClientException.new 'Forbidden', context
|
55
|
+
elsif context.response.status_code == 404
|
56
|
+
raise RaasGenericException.new 'Not Found', context
|
57
|
+
elsif context.response.status_code == 409
|
58
|
+
raise RaasClientException.new 'Conflict', context
|
59
|
+
elsif context.response.status_code == 500
|
60
|
+
raise RaasServerException.new 'Internal Server Error - Retry Later', context
|
61
|
+
elsif context.response.status_code == 503
|
62
|
+
raise RaasServerException.new 'Service Unavailable - Retry Later', context
|
63
|
+
elsif !context.response.status_code.between?(200, 208) #[200,208] = HTTP OK
|
64
|
+
raise RaasGenericException.new 'API Error', context
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
|
2
|
+
|
3
|
+
module Raas
|
4
|
+
class CatalogController < BaseController
|
5
|
+
@@instance = CatalogController.new
|
6
|
+
# Singleton instance of the controller class
|
7
|
+
def self.instance
|
8
|
+
@@instance
|
9
|
+
end
|
10
|
+
|
11
|
+
# Get Catalog
|
12
|
+
# @return CatalogModel response from the API call
|
13
|
+
def get_catalog
|
14
|
+
begin
|
15
|
+
@logger.info("get_catalog called.")
|
16
|
+
|
17
|
+
# prepare query url
|
18
|
+
@logger.info("Preparing query URL for get_catalog.")
|
19
|
+
_query_builder = Configuration.get_base_uri()
|
20
|
+
_query_builder << '/catalogs'
|
21
|
+
_query_url = APIHelper.clean_url _query_builder
|
22
|
+
|
23
|
+
# prepare headers
|
24
|
+
@logger.info("Preparing headers for get_catalog.")
|
25
|
+
_headers = {
|
26
|
+
'accept' => 'application/json'
|
27
|
+
}
|
28
|
+
|
29
|
+
# prepare and execute HttpRequest
|
30
|
+
@logger.info('Preparing and executing HttpRequest for get_catalog.')
|
31
|
+
_request = @http_client.get _query_url, headers: _headers
|
32
|
+
BasicAuth.apply(_request)
|
33
|
+
_context = execute_request(_request, name: 'get_catalog')
|
34
|
+
validate_response(_context)
|
35
|
+
|
36
|
+
# return appropriate response type
|
37
|
+
@logger.info("Returning response for get_catalog.")
|
38
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
39
|
+
return CatalogModel.from_hash(decoded)
|
40
|
+
|
41
|
+
rescue Exception => e
|
42
|
+
@logger.error(e)
|
43
|
+
raise e
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,137 @@
|
|
1
|
+
# This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
|
2
|
+
|
3
|
+
module Raas
|
4
|
+
class CustomersController < BaseController
|
5
|
+
@@instance = CustomersController.new
|
6
|
+
# Singleton instance of the controller class
|
7
|
+
def self.instance
|
8
|
+
@@instance
|
9
|
+
end
|
10
|
+
|
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)
|
50
|
+
|
51
|
+
rescue Exception => e
|
52
|
+
@logger.error(e)
|
53
|
+
raise e
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# Create a new customer
|
58
|
+
# @param [CreateCustomerRequestModel] body Required parameter: Request Body
|
59
|
+
# @return CustomerModel response from the API call
|
60
|
+
def create_customer(body)
|
61
|
+
begin
|
62
|
+
@logger.info("create_customer called.")
|
63
|
+
|
64
|
+
# validate required parameters
|
65
|
+
@logger.info("Validating required parameters for create_customer.")
|
66
|
+
validate_parameters({
|
67
|
+
'body' => body
|
68
|
+
})
|
69
|
+
|
70
|
+
# prepare query url
|
71
|
+
@logger.info("Preparing query URL for create_customer.")
|
72
|
+
_query_builder = Configuration.get_base_uri()
|
73
|
+
_query_builder << '/customers'
|
74
|
+
_query_url = APIHelper.clean_url _query_builder
|
75
|
+
|
76
|
+
# prepare headers
|
77
|
+
@logger.info("Preparing headers for create_customer.")
|
78
|
+
_headers = {
|
79
|
+
'accept' => 'application/json',
|
80
|
+
'content-type' => 'application/json; charset=utf-8'
|
81
|
+
}
|
82
|
+
|
83
|
+
# prepare and execute HttpRequest
|
84
|
+
@logger.info('Preparing and executing HttpRequest for create_customer.')
|
85
|
+
_request = @http_client.post _query_url, headers: _headers, parameters: body.to_json
|
86
|
+
BasicAuth.apply(_request)
|
87
|
+
_context = execute_request(_request, name: 'create_customer')
|
88
|
+
validate_response(_context)
|
89
|
+
|
90
|
+
# return appropriate response type
|
91
|
+
@logger.info("Returning response for create_customer.")
|
92
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
93
|
+
return CustomerModel.from_hash(decoded)
|
94
|
+
|
95
|
+
rescue Exception => e
|
96
|
+
@logger.error(e)
|
97
|
+
raise e
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
# Gets all customers under the platform
|
102
|
+
# @return List of CustomerModel response from the API call
|
103
|
+
def get_all_customers
|
104
|
+
begin
|
105
|
+
@logger.info("get_all_customers called.")
|
106
|
+
|
107
|
+
# prepare query url
|
108
|
+
@logger.info("Preparing query URL for get_all_customers.")
|
109
|
+
_query_builder = Configuration.get_base_uri()
|
110
|
+
_query_builder << '/customers'
|
111
|
+
_query_url = APIHelper.clean_url _query_builder
|
112
|
+
|
113
|
+
# prepare headers
|
114
|
+
@logger.info("Preparing headers for get_all_customers.")
|
115
|
+
_headers = {
|
116
|
+
'accept' => 'application/json'
|
117
|
+
}
|
118
|
+
|
119
|
+
# prepare and execute HttpRequest
|
120
|
+
@logger.info('Preparing and executing HttpRequest for get_all_customers.')
|
121
|
+
_request = @http_client.get _query_url, headers: _headers
|
122
|
+
BasicAuth.apply(_request)
|
123
|
+
_context = execute_request(_request, name: 'get_all_customers')
|
124
|
+
validate_response(_context)
|
125
|
+
|
126
|
+
# return appropriate response type
|
127
|
+
@logger.info("Returning response for get_all_customers.")
|
128
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
129
|
+
return decoded.map{|element| CustomerModel.from_hash(element)}
|
130
|
+
|
131
|
+
rescue Exception => e
|
132
|
+
@logger.error(e)
|
133
|
+
raise e
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
|
2
|
+
|
3
|
+
module Raas
|
4
|
+
class ExchangeRatesController < BaseController
|
5
|
+
@@instance = ExchangeRatesController.new
|
6
|
+
# Singleton instance of the controller class
|
7
|
+
def self.instance
|
8
|
+
@@instance
|
9
|
+
end
|
10
|
+
|
11
|
+
# Retrieve current exchange rates
|
12
|
+
# @return void response from the API call
|
13
|
+
def get_exchange_rates
|
14
|
+
begin
|
15
|
+
@logger.info("get_exchange_rates called.")
|
16
|
+
|
17
|
+
# prepare query url
|
18
|
+
@logger.info("Preparing query URL for get_exchange_rates.")
|
19
|
+
_query_builder = Configuration.get_base_uri()
|
20
|
+
_query_builder << '/exchangerate'
|
21
|
+
_query_url = APIHelper.clean_url _query_builder
|
22
|
+
|
23
|
+
# prepare and execute HttpRequest
|
24
|
+
@logger.info('Preparing and executing HttpRequest for get_exchange_rates.')
|
25
|
+
_request = @http_client.get _query_url
|
26
|
+
BasicAuth.apply(_request)
|
27
|
+
_context = execute_request(_request, name: 'get_exchange_rates')
|
28
|
+
validate_response(_context)
|
29
|
+
|
30
|
+
rescue Exception => e
|
31
|
+
@logger.error(e)
|
32
|
+
raise e
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,199 @@
|
|
1
|
+
# This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
|
2
|
+
|
3
|
+
module Raas
|
4
|
+
class OrdersController < BaseController
|
5
|
+
@@instance = OrdersController.new
|
6
|
+
# Singleton instance of the controller class
|
7
|
+
def self.instance
|
8
|
+
@@instance
|
9
|
+
end
|
10
|
+
|
11
|
+
# TODO: type endpoint description here
|
12
|
+
# @param [CreateOrderRequestModel] body Required parameter: Example:
|
13
|
+
# @return OrderModel response from the API call
|
14
|
+
def create_order(body)
|
15
|
+
begin
|
16
|
+
@logger.info("create_order called.")
|
17
|
+
|
18
|
+
# validate required parameters
|
19
|
+
@logger.info("Validating required parameters for create_order.")
|
20
|
+
validate_parameters({
|
21
|
+
'body' => body
|
22
|
+
})
|
23
|
+
|
24
|
+
# prepare query url
|
25
|
+
@logger.info("Preparing query URL for create_order.")
|
26
|
+
_query_builder = Configuration.get_base_uri()
|
27
|
+
_query_builder << '/orders'
|
28
|
+
_query_url = APIHelper.clean_url _query_builder
|
29
|
+
|
30
|
+
# prepare headers
|
31
|
+
@logger.info("Preparing headers for create_order.")
|
32
|
+
_headers = {
|
33
|
+
'accept' => 'application/json',
|
34
|
+
'content-type' => 'application/json; charset=utf-8'
|
35
|
+
}
|
36
|
+
|
37
|
+
# prepare and execute HttpRequest
|
38
|
+
@logger.info('Preparing and executing HttpRequest for create_order.')
|
39
|
+
_request = @http_client.post _query_url, headers: _headers, parameters: body.to_json
|
40
|
+
BasicAuth.apply(_request)
|
41
|
+
_context = execute_request(_request, name: 'create_order')
|
42
|
+
validate_response(_context)
|
43
|
+
|
44
|
+
# return appropriate response type
|
45
|
+
@logger.info("Returning response for create_order.")
|
46
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
47
|
+
return OrderModel.from_hash(decoded)
|
48
|
+
|
49
|
+
rescue Exception => e
|
50
|
+
@logger.error(e)
|
51
|
+
raise e
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
# TODO: type endpoint description here
|
56
|
+
# @param [String] reference_order_id Required parameter: Reference Order ID
|
57
|
+
# @return OrderModel response from the API call
|
58
|
+
def get_order(reference_order_id)
|
59
|
+
begin
|
60
|
+
@logger.info("get_order called.")
|
61
|
+
|
62
|
+
# validate required parameters
|
63
|
+
@logger.info("Validating required parameters for get_order.")
|
64
|
+
validate_parameters({
|
65
|
+
'reference_order_id' => reference_order_id
|
66
|
+
})
|
67
|
+
|
68
|
+
# prepare query url
|
69
|
+
@logger.info("Preparing query URL for get_order.")
|
70
|
+
_query_builder = Configuration.get_base_uri()
|
71
|
+
_query_builder << '/orders/{referenceOrderID}'
|
72
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
73
|
+
'referenceOrderID' => reference_order_id
|
74
|
+
}
|
75
|
+
_query_url = APIHelper.clean_url _query_builder
|
76
|
+
|
77
|
+
# prepare headers
|
78
|
+
@logger.info("Preparing headers for get_order.")
|
79
|
+
_headers = {
|
80
|
+
'accept' => 'application/json'
|
81
|
+
}
|
82
|
+
|
83
|
+
# prepare and execute HttpRequest
|
84
|
+
@logger.info('Preparing and executing HttpRequest for get_order.')
|
85
|
+
_request = @http_client.get _query_url, headers: _headers
|
86
|
+
BasicAuth.apply(_request)
|
87
|
+
_context = execute_request(_request, name: 'get_order')
|
88
|
+
validate_response(_context)
|
89
|
+
|
90
|
+
# return appropriate response type
|
91
|
+
@logger.info("Returning response for get_order.")
|
92
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
93
|
+
return OrderModel.from_hash(decoded)
|
94
|
+
|
95
|
+
rescue Exception => e
|
96
|
+
@logger.error(e)
|
97
|
+
raise e
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
# TODO: type endpoint description here
|
102
|
+
# @param [String] reference_order_id Required parameter: Example:
|
103
|
+
# @return ResendOrderResponseModel response from the API call
|
104
|
+
def create_resend_order(reference_order_id)
|
105
|
+
begin
|
106
|
+
@logger.info("create_resend_order called.")
|
107
|
+
|
108
|
+
# validate required parameters
|
109
|
+
@logger.info("Validating required parameters for create_resend_order.")
|
110
|
+
validate_parameters({
|
111
|
+
'reference_order_id' => reference_order_id
|
112
|
+
})
|
113
|
+
|
114
|
+
# prepare query url
|
115
|
+
@logger.info("Preparing query URL for create_resend_order.")
|
116
|
+
_query_builder = Configuration.get_base_uri()
|
117
|
+
_query_builder << '/orders/{referenceOrderID}/resends'
|
118
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
119
|
+
'referenceOrderID' => reference_order_id
|
120
|
+
}
|
121
|
+
_query_url = APIHelper.clean_url _query_builder
|
122
|
+
|
123
|
+
# prepare headers
|
124
|
+
@logger.info("Preparing headers for create_resend_order.")
|
125
|
+
_headers = {
|
126
|
+
'accept' => 'application/json'
|
127
|
+
}
|
128
|
+
|
129
|
+
# prepare and execute HttpRequest
|
130
|
+
@logger.info('Preparing and executing HttpRequest for create_resend_order.')
|
131
|
+
_request = @http_client.post _query_url, headers: _headers
|
132
|
+
BasicAuth.apply(_request)
|
133
|
+
_context = execute_request(_request, name: 'create_resend_order')
|
134
|
+
validate_response(_context)
|
135
|
+
|
136
|
+
# return appropriate response type
|
137
|
+
@logger.info("Returning response for create_resend_order.")
|
138
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
139
|
+
return ResendOrderResponseModel.from_hash(decoded)
|
140
|
+
|
141
|
+
rescue Exception => e
|
142
|
+
@logger.error(e)
|
143
|
+
raise e
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
# TODO: type endpoint description here
|
148
|
+
# @param [String] account_identifier Optional parameter: Example:
|
149
|
+
# @param [String] customer_identifier Optional parameter: Example:
|
150
|
+
# @param [String] external_ref_id Optional parameter: Example:
|
151
|
+
# @param [DateTime] start_date Optional parameter: Example:
|
152
|
+
# @param [DateTime] end_date Optional parameter: Example:
|
153
|
+
# @param [Integer] elements_per_block Optional parameter: Example:
|
154
|
+
# @param [Integer] page Optional parameter: Example:
|
155
|
+
# @return GetOrdersResponseModel response from the API call
|
156
|
+
def get_orders(options = Hash.new)
|
157
|
+
begin
|
158
|
+
@logger.info("get_orders called.")
|
159
|
+
|
160
|
+
# prepare query url
|
161
|
+
@logger.info("Preparing query URL for get_orders.")
|
162
|
+
_query_builder = Configuration.get_base_uri()
|
163
|
+
_query_builder << '/orders'
|
164
|
+
_query_builder = APIHelper.append_url_with_query_parameters _query_builder, {
|
165
|
+
'accountIdentifier' => options['account_identifier'],
|
166
|
+
'customerIdentifier' => options['customer_identifier'],
|
167
|
+
'externalRefID' => options['external_ref_id'],
|
168
|
+
'startDate' => options['start_date'],
|
169
|
+
'endDate' => options['end_date'],
|
170
|
+
'elementsPerBlock' => options['elements_per_block'],
|
171
|
+
'page' => options['page']
|
172
|
+
}, array_serialization: Configuration.array_serialization
|
173
|
+
_query_url = APIHelper.clean_url _query_builder
|
174
|
+
|
175
|
+
# prepare headers
|
176
|
+
@logger.info("Preparing headers for get_orders.")
|
177
|
+
_headers = {
|
178
|
+
'accept' => 'application/json'
|
179
|
+
}
|
180
|
+
|
181
|
+
# prepare and execute HttpRequest
|
182
|
+
@logger.info('Preparing and executing HttpRequest for get_orders.')
|
183
|
+
_request = @http_client.get _query_url, headers: _headers
|
184
|
+
BasicAuth.apply(_request)
|
185
|
+
_context = execute_request(_request, name: 'get_orders')
|
186
|
+
validate_response(_context)
|
187
|
+
|
188
|
+
# return appropriate response type
|
189
|
+
@logger.info("Returning response for get_orders.")
|
190
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
191
|
+
return GetOrdersResponseModel.from_hash(decoded)
|
192
|
+
|
193
|
+
rescue Exception => e
|
194
|
+
@logger.error(e)
|
195
|
+
raise e
|
196
|
+
end
|
197
|
+
end
|
198
|
+
end
|
199
|
+
end
|