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
data/lib/raas.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
# This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
|
2
|
+
require 'date'
|
3
|
+
require 'json'
|
4
|
+
require 'faraday'
|
5
|
+
require 'certifi'
|
6
|
+
require 'logging'
|
7
|
+
|
8
|
+
require_relative 'raas/api_helper.rb'
|
9
|
+
require_relative 'raas/raas_client.rb'
|
10
|
+
|
11
|
+
# Http
|
12
|
+
require_relative 'raas/http/http_call_back.rb'
|
13
|
+
require_relative 'raas/http/http_client.rb'
|
14
|
+
require_relative 'raas/http/http_method_enum.rb'
|
15
|
+
require_relative 'raas/http/http_request.rb'
|
16
|
+
require_relative 'raas/http/http_response.rb'
|
17
|
+
require_relative 'raas/http/http_context.rb'
|
18
|
+
require_relative 'raas/http/faraday_client.rb'
|
19
|
+
require_relative 'raas/http/auth/basic_auth.rb'
|
20
|
+
|
21
|
+
# Models
|
22
|
+
require_relative 'raas/models/base_model.rb'
|
23
|
+
require_relative 'raas/models/account_summary_model.rb'
|
24
|
+
require_relative 'raas/models/customer_model.rb'
|
25
|
+
require_relative 'raas/models/account_model.rb'
|
26
|
+
require_relative 'raas/models/create_customer_request_model.rb'
|
27
|
+
require_relative 'raas/models/create_account_request_model.rb'
|
28
|
+
require_relative 'raas/models/raas_server_error_model.rb'
|
29
|
+
require_relative 'raas/models/system_status_response_model.rb'
|
30
|
+
require_relative 'raas/models/catalog_model.rb'
|
31
|
+
require_relative 'raas/models/brand_model.rb'
|
32
|
+
require_relative 'raas/models/item_model.rb'
|
33
|
+
require_relative 'raas/models/order_model.rb'
|
34
|
+
require_relative 'raas/models/currency_breakdown_model.rb'
|
35
|
+
require_relative 'raas/models/name_email_model.rb'
|
36
|
+
require_relative 'raas/models/exchange_rate_response_model.rb'
|
37
|
+
require_relative 'raas/models/get_orders_response_model.rb'
|
38
|
+
require_relative 'raas/models/resend_order_response_model.rb'
|
39
|
+
require_relative 'raas/models/create_order_request_model.rb'
|
40
|
+
require_relative 'raas/models/reward_model.rb'
|
41
|
+
require_relative 'raas/models/reward_credential_model.rb'
|
42
|
+
require_relative 'raas/models/exchange_rate_model.rb'
|
43
|
+
require_relative 'raas/models/page_model.rb'
|
44
|
+
require_relative 'raas/models/raas_client_error_model.rb'
|
45
|
+
|
46
|
+
# Exceptions
|
47
|
+
require_relative 'raas/exceptions/api_exception.rb'
|
48
|
+
require_relative 'raas/exceptions/raas_generic_exception.rb'
|
49
|
+
require_relative 'raas/exceptions/raas_client_exception.rb'
|
50
|
+
require_relative 'raas/exceptions/raas_server_exception.rb'
|
51
|
+
|
52
|
+
require_relative 'raas/configuration.rb'
|
53
|
+
|
54
|
+
# Controllers
|
55
|
+
require_relative 'raas/controllers/base_controller.rb'
|
56
|
+
require_relative 'raas/controllers/accounts_controller.rb'
|
57
|
+
require_relative 'raas/controllers/orders_controller.rb'
|
58
|
+
require_relative 'raas/controllers/catalog_controller.rb'
|
59
|
+
require_relative 'raas/controllers/exchange_rates_controller.rb'
|
60
|
+
require_relative 'raas/controllers/status_controller.rb'
|
61
|
+
require_relative 'raas/controllers/customers_controller.rb'
|
@@ -0,0 +1,181 @@
|
|
1
|
+
# This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
|
2
|
+
|
3
|
+
module Raas
|
4
|
+
class APIHelper
|
5
|
+
# Serializes an array parameter (creates key value pairs)
|
6
|
+
# @param [String] The name of the parameter
|
7
|
+
# @param [Array] The value of the parameter
|
8
|
+
# @param [String] The format of the serialization
|
9
|
+
def self.serialize_array(key, array, formatting: 'indexed')
|
10
|
+
tuples = []
|
11
|
+
|
12
|
+
if formatting == 'unindexed'
|
13
|
+
tuples += array.map { |element| ["#{key}[]", element] }
|
14
|
+
elsif formatting == 'indexed'
|
15
|
+
tuples += array.map.with_index { |element, index| ["#{key}[#{index}]", element] }
|
16
|
+
elsif formatting == 'plain'
|
17
|
+
tuples += array.map { |element| [key, element] }
|
18
|
+
else
|
19
|
+
raise ArgumentError, 'Invalid format provided.'
|
20
|
+
end
|
21
|
+
tuples
|
22
|
+
end
|
23
|
+
|
24
|
+
# Replaces template parameters in the given url
|
25
|
+
# @param [String] The query string builder to replace the template parameters
|
26
|
+
# @param [Hash] The parameters to replace in the url
|
27
|
+
def self.append_url_with_template_parameters(query_builder, parameters)
|
28
|
+
# perform parameter validation
|
29
|
+
raise ArgumentError, 'Given value for parameter \"query_builder\" is invalid.' unless query_builder.instance_of? String
|
30
|
+
|
31
|
+
# return if there are no parameters to replace
|
32
|
+
return query_builder if parameters.nil?
|
33
|
+
|
34
|
+
# iterate and append parameters
|
35
|
+
parameters.each do |key, value|
|
36
|
+
replace_value = ''
|
37
|
+
|
38
|
+
if value.nil?
|
39
|
+
replace_value = ''
|
40
|
+
elsif value.instance_of? Array
|
41
|
+
value.map! { |element| CGI.escape(element.to_s) }
|
42
|
+
replace_value = value.join('/')
|
43
|
+
else
|
44
|
+
replace_value = CGI.escape(value.to_s)
|
45
|
+
end
|
46
|
+
|
47
|
+
# find the template parameter and replace it with its value
|
48
|
+
query_builder = query_builder.gsub('{' + key.to_s + '}', replace_value)
|
49
|
+
end
|
50
|
+
query_builder
|
51
|
+
end
|
52
|
+
|
53
|
+
# Appends the given set of parameters to the given query string
|
54
|
+
# @param [String] The query string builder to add the query parameters to
|
55
|
+
# @param [Hash] The parameters to append
|
56
|
+
# @param [String] The format of array parameter serialization
|
57
|
+
def self.append_url_with_query_parameters(query_builder, parameters, array_serialization: 'indexed')
|
58
|
+
# perform parameter validation
|
59
|
+
raise ArgumentError, 'Given value for parameter \"query_builder\" is invalid.' unless query_builder.instance_of? String
|
60
|
+
|
61
|
+
# return if there are no parameters to replace
|
62
|
+
return query_builder if parameters.nil?
|
63
|
+
|
64
|
+
parameters.each do |key, value|
|
65
|
+
seperator = (query_builder.include? '?') ? '&' : '?'
|
66
|
+
if not value.nil?
|
67
|
+
if value.instance_of? Array
|
68
|
+
value.compact!
|
69
|
+
if array_serialization == 'csv'
|
70
|
+
query_builder += "#{seperator}#{key}=#{value.map { |element| CGI.escape(element.to_s) }.join(',')}"
|
71
|
+
elsif array_serialization == 'psv'
|
72
|
+
query_builder += "#{seperator}#{key}=#{value.map { |element| CGI.escape(element.to_s) }.join('|')}"
|
73
|
+
elsif array_serialization == 'tsv'
|
74
|
+
query_builder += "#{seperator}#{key}=#{value.map { |element| CGI.escape(element.to_s) }.join('\t')}"
|
75
|
+
else
|
76
|
+
query_builder += "#{seperator}#{APIHelper.serialize_array(key, value, formatting: array_serialization).
|
77
|
+
map { |k, v| "#{k}=#{CGI.escape(v.to_s)}" }.join('&')}"
|
78
|
+
end
|
79
|
+
else
|
80
|
+
query_builder += "#{seperator}#{key}=#{CGI.escape(value.to_s)}"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
query_builder
|
85
|
+
end
|
86
|
+
|
87
|
+
# Validates and processes the given Url
|
88
|
+
# @param [String] The given Url to process
|
89
|
+
# @return [String] Pre-processed Url as string
|
90
|
+
def self.clean_url(url)
|
91
|
+
# perform parameter validation
|
92
|
+
raise ArgumentError, 'Invalid Url.' unless url.instance_of? String
|
93
|
+
|
94
|
+
# ensure that the urls are absolute
|
95
|
+
matches = url.match(%r{^(https?:\/\/[^\/]+)})
|
96
|
+
raise ArgumentError, 'Invalid Url format.' if matches.nil?
|
97
|
+
|
98
|
+
# get the http protocol match
|
99
|
+
protocol = matches[1]
|
100
|
+
|
101
|
+
# check if parameters exist
|
102
|
+
index = url.index('?')
|
103
|
+
|
104
|
+
# remove redundant forward slashes
|
105
|
+
query = url[protocol.length...(!index.nil? ? index : url.length)]
|
106
|
+
query.gsub!(%r{\/\/+}, '/')
|
107
|
+
|
108
|
+
# get the parameters
|
109
|
+
parameters = !index.nil? ? url[url.index('?')...url.length] : ''
|
110
|
+
|
111
|
+
# return processed url
|
112
|
+
protocol + query + parameters
|
113
|
+
end
|
114
|
+
|
115
|
+
# Parses JSON string.
|
116
|
+
# @param [String] A JSON string.
|
117
|
+
def self.json_deserialize(json)
|
118
|
+
return JSON.parse(json)
|
119
|
+
rescue
|
120
|
+
raise TypeError, 'Server responded with invalid JSON.'
|
121
|
+
end
|
122
|
+
|
123
|
+
# Removes elements with empty values from a hash.
|
124
|
+
# @param [Hash] The hash to clean.
|
125
|
+
def self.clean_hash(hash)
|
126
|
+
hash.delete_if { |_key, value| value.to_s.strip.empty? }
|
127
|
+
end
|
128
|
+
|
129
|
+
# Form encodes a hash of parameters.
|
130
|
+
# @param [Hash] The hash of parameters to encode.
|
131
|
+
# @return [Hash] A hash with the same parameters form encoded.
|
132
|
+
def self.form_encode_parameters(form_parameters)
|
133
|
+
encoded = {}
|
134
|
+
form_parameters.each do |key, value|
|
135
|
+
encoded.merge!(APIHelper.form_encode(value, key))
|
136
|
+
end
|
137
|
+
encoded
|
138
|
+
end
|
139
|
+
|
140
|
+
# Form encodes an object.
|
141
|
+
# @param [Dynamic] An object to form encode.
|
142
|
+
# @param [String] The name of the object.
|
143
|
+
# @return [Hash] A form encoded representation of the object in the form of a hash.
|
144
|
+
def self.form_encode(obj, instance_name)
|
145
|
+
retval = {}
|
146
|
+
|
147
|
+
# If this is a structure, resolve it's field names.
|
148
|
+
obj = obj.to_hash if obj.is_a? BaseModel
|
149
|
+
|
150
|
+
# Create a form encoded hash for this object.
|
151
|
+
if obj.nil?
|
152
|
+
nil
|
153
|
+
elsif obj.instance_of? Array
|
154
|
+
obj.each_with_index do |value, index|
|
155
|
+
retval.merge!(APIHelper.form_encode(value, instance_name + '[' + index.to_s + ']'))
|
156
|
+
end
|
157
|
+
elsif obj.instance_of? Hash
|
158
|
+
obj.each do |key, value|
|
159
|
+
retval.merge!(APIHelper.form_encode(value, instance_name + '[' + key + ']'))
|
160
|
+
end
|
161
|
+
else
|
162
|
+
retval[instance_name] = obj
|
163
|
+
end
|
164
|
+
retval
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
# extend types to support to_bool
|
170
|
+
module ToBoolean
|
171
|
+
def to_bool
|
172
|
+
return true if self == true || self.to_s.strip =~ /^(true|yes|y|1)$/i
|
173
|
+
return false
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
class NilClass; include ToBoolean; end
|
178
|
+
class TrueClass; include ToBoolean; end
|
179
|
+
class FalseClass; include ToBoolean; end
|
180
|
+
class Numeric; include ToBoolean; end
|
181
|
+
class String; include ToBoolean; end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
|
2
|
+
|
3
|
+
module Raas
|
4
|
+
|
5
|
+
Logging.logger.root.appenders = Logging.appenders.stdout
|
6
|
+
Logging.logger.root.level = :info
|
7
|
+
|
8
|
+
class Configuration
|
9
|
+
# Set the array parameter serialization method
|
10
|
+
# (allowed: indexed, unindexed, plain, csv, tsv, psv)
|
11
|
+
@array_serialization = 'indexed'
|
12
|
+
|
13
|
+
# An enum for SDK environments
|
14
|
+
class Environment
|
15
|
+
#SANDBOX: Sandbox (Fake) Environment
|
16
|
+
#PRODUCTION: Production (Live) Environment
|
17
|
+
#QA: Tango Card Internal Use Only
|
18
|
+
#GAMMA: Tango Card Internal Use Only
|
19
|
+
#LOCAL: Tango Card Internal Use Only
|
20
|
+
ENVIRONMENT = [SANDBOX = 0, PRODUCTION = 1, QA = 2, GAMMA = 3, LOCAL = 4]
|
21
|
+
end
|
22
|
+
|
23
|
+
# An enum for API servers
|
24
|
+
class Server
|
25
|
+
SERVER = [DEFAULT = 0]
|
26
|
+
end
|
27
|
+
|
28
|
+
# The environment in which the SDK is running
|
29
|
+
@environment = Environment::SANDBOX
|
30
|
+
|
31
|
+
# RaaS v2 API Platform Name
|
32
|
+
@platform_name = 'QAPlatform2'
|
33
|
+
|
34
|
+
# RaaS v2 API Platform Key
|
35
|
+
@platform_key = 'apYPfT6HNONpDRUj3CLGWYt7gvIHONpDRUYPfT6Hj'
|
36
|
+
|
37
|
+
# All the environments the SDK can run in
|
38
|
+
@environments = {
|
39
|
+
Environment::SANDBOX => {
|
40
|
+
Server::DEFAULT => 'https://integration-api.tangocard.com/raas/v2',
|
41
|
+
},
|
42
|
+
Environment::PRODUCTION => {
|
43
|
+
Server::DEFAULT => 'https://api.tangocard.com/raas/v2',
|
44
|
+
},
|
45
|
+
Environment::QA => {
|
46
|
+
Server::DEFAULT => 'https://qa-api.tangocard.com/raas/v2',
|
47
|
+
},
|
48
|
+
Environment::GAMMA => {
|
49
|
+
Server::DEFAULT => 'https://gamma-api.tangocard.com/raas/v2',
|
50
|
+
},
|
51
|
+
Environment::LOCAL => {
|
52
|
+
Server::DEFAULT => 'http://raastango.cc:8080/v2',
|
53
|
+
},
|
54
|
+
}
|
55
|
+
|
56
|
+
# Generates the appropriate base URI for the environment and the server.
|
57
|
+
# @param [Configuration::Server] The server enum for which the base URI is required.
|
58
|
+
# @return [String] The base URI.
|
59
|
+
def self.get_base_uri(server = Server::DEFAULT)
|
60
|
+
environments[environment][server]
|
61
|
+
end
|
62
|
+
|
63
|
+
# The attribute accessors for public properties
|
64
|
+
class << self
|
65
|
+
attr_accessor :array_serialization
|
66
|
+
attr_accessor :environment
|
67
|
+
attr_accessor :environments
|
68
|
+
attr_accessor :platform_name
|
69
|
+
attr_accessor :platform_key
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,189 @@
|
|
1
|
+
# This file was automatically generated for Tango Card, Inc. by APIMATIC v2.0 ( https://apimatic.io ).
|
2
|
+
|
3
|
+
module Raas
|
4
|
+
class AccountsController < BaseController
|
5
|
+
@@instance = AccountsController.new
|
6
|
+
# Singleton instance of the controller class
|
7
|
+
def self.instance
|
8
|
+
@@instance
|
9
|
+
end
|
10
|
+
|
11
|
+
# Gets a list of accounts for a given customer
|
12
|
+
# @param [String] customer_identifier Required parameter: Customer Identifier
|
13
|
+
# @return List of AccountSummaryModel response from the API call
|
14
|
+
def get_accounts_by_customer(customer_identifier)
|
15
|
+
begin
|
16
|
+
@logger.info("get_accounts_by_customer called.")
|
17
|
+
|
18
|
+
# validate required parameters
|
19
|
+
@logger.info("Validating required parameters for get_accounts_by_customer.")
|
20
|
+
validate_parameters({
|
21
|
+
'customer_identifier' => customer_identifier
|
22
|
+
})
|
23
|
+
|
24
|
+
# prepare query url
|
25
|
+
@logger.info("Preparing query URL for get_accounts_by_customer.")
|
26
|
+
_query_builder = Configuration.get_base_uri()
|
27
|
+
_query_builder << '/customers/{customerIdentifier}/accounts'
|
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_accounts_by_customer.")
|
35
|
+
_headers = {
|
36
|
+
'accept' => 'application/json'
|
37
|
+
}
|
38
|
+
|
39
|
+
# prepare and execute HttpRequest
|
40
|
+
@logger.info('Preparing and executing HttpRequest for get_accounts_by_customer.')
|
41
|
+
_request = @http_client.get _query_url, headers: _headers
|
42
|
+
BasicAuth.apply(_request)
|
43
|
+
_context = execute_request(_request, name: 'get_accounts_by_customer')
|
44
|
+
validate_response(_context)
|
45
|
+
|
46
|
+
# return appropriate response type
|
47
|
+
@logger.info("Returning response for get_accounts_by_customer.")
|
48
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
49
|
+
return decoded.map{|element| AccountSummaryModel.from_hash(element)}
|
50
|
+
|
51
|
+
rescue Exception => e
|
52
|
+
@logger.error(e)
|
53
|
+
raise e
|
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')
|
90
|
+
validate_response(_context)
|
91
|
+
|
92
|
+
# return appropriate response type
|
93
|
+
@logger.info("Returning response for get_account.")
|
94
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
95
|
+
return AccountModel.from_hash(decoded)
|
96
|
+
|
97
|
+
rescue Exception => e
|
98
|
+
@logger.error(e)
|
99
|
+
raise e
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
# Create an account under a given customer
|
104
|
+
# @param [String] customer_identifier Required parameter: Customer Identifier
|
105
|
+
# @param [CreateAccountRequestModel] body Required parameter: Request Body
|
106
|
+
# @return AccountModel response from the API call
|
107
|
+
def create_account(customer_identifier,
|
108
|
+
body)
|
109
|
+
begin
|
110
|
+
@logger.info("create_account called.")
|
111
|
+
|
112
|
+
# validate required parameters
|
113
|
+
@logger.info("Validating required parameters for create_account.")
|
114
|
+
validate_parameters({
|
115
|
+
'customer_identifier' => customer_identifier,
|
116
|
+
'body' => body
|
117
|
+
})
|
118
|
+
|
119
|
+
# prepare query url
|
120
|
+
@logger.info("Preparing query URL for create_account.")
|
121
|
+
_query_builder = Configuration.get_base_uri()
|
122
|
+
_query_builder << '/customers/{customerIdentifier}/accounts'
|
123
|
+
_query_builder = APIHelper.append_url_with_template_parameters _query_builder, {
|
124
|
+
'customerIdentifier' => customer_identifier
|
125
|
+
}
|
126
|
+
_query_url = APIHelper.clean_url _query_builder
|
127
|
+
|
128
|
+
# prepare headers
|
129
|
+
@logger.info("Preparing headers for create_account.")
|
130
|
+
_headers = {
|
131
|
+
'accept' => 'application/json',
|
132
|
+
'content-type' => 'application/json; charset=utf-8'
|
133
|
+
}
|
134
|
+
|
135
|
+
# prepare and execute HttpRequest
|
136
|
+
@logger.info('Preparing and executing HttpRequest for create_account.')
|
137
|
+
_request = @http_client.post _query_url, headers: _headers, parameters: body.to_json
|
138
|
+
BasicAuth.apply(_request)
|
139
|
+
_context = execute_request(_request, name: 'create_account')
|
140
|
+
validate_response(_context)
|
141
|
+
|
142
|
+
# return appropriate response type
|
143
|
+
@logger.info("Returning response for create_account.")
|
144
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
145
|
+
return AccountModel.from_hash(decoded)
|
146
|
+
|
147
|
+
rescue Exception => e
|
148
|
+
@logger.error(e)
|
149
|
+
raise e
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
# Gets all accounts under the platform
|
154
|
+
# @return List of AccountModel response from the API call
|
155
|
+
def get_all_accounts
|
156
|
+
begin
|
157
|
+
@logger.info("get_all_accounts called.")
|
158
|
+
|
159
|
+
# prepare query url
|
160
|
+
@logger.info("Preparing query URL for get_all_accounts.")
|
161
|
+
_query_builder = Configuration.get_base_uri()
|
162
|
+
_query_builder << '/accounts'
|
163
|
+
_query_url = APIHelper.clean_url _query_builder
|
164
|
+
|
165
|
+
# prepare headers
|
166
|
+
@logger.info("Preparing headers for get_all_accounts.")
|
167
|
+
_headers = {
|
168
|
+
'accept' => 'application/json'
|
169
|
+
}
|
170
|
+
|
171
|
+
# prepare and execute HttpRequest
|
172
|
+
@logger.info('Preparing and executing HttpRequest for get_all_accounts.')
|
173
|
+
_request = @http_client.get _query_url, headers: _headers
|
174
|
+
BasicAuth.apply(_request)
|
175
|
+
_context = execute_request(_request, name: 'get_all_accounts')
|
176
|
+
validate_response(_context)
|
177
|
+
|
178
|
+
# return appropriate response type
|
179
|
+
@logger.info("Returning response for get_all_accounts.")
|
180
|
+
decoded = APIHelper.json_deserialize(_context.response.raw_body)
|
181
|
+
return decoded.map{|element| AccountModel.from_hash(element)}
|
182
|
+
|
183
|
+
rescue Exception => e
|
184
|
+
@logger.error(e)
|
185
|
+
raise e
|
186
|
+
end
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|