ost-sdk-ruby 1.1.0 → 2.0.0.beta.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/lib/config.rb +18 -0
- data/lib/ost-sdk-ruby/saas.rb +12 -17
- data/lib/ost-sdk-ruby/saas/balance.rb +35 -0
- data/lib/ost-sdk-ruby/saas/base.rb +94 -12
- data/lib/ost-sdk-ruby/saas/{v1.1/ledger.rb → chains.rb} +6 -9
- data/lib/ost-sdk-ruby/saas/{v1.1/balances.rb → device_managers.rb} +7 -9
- data/lib/ost-sdk-ruby/saas/devices.rb +55 -0
- data/lib/ost-sdk-ruby/saas/manifest.rb +40 -0
- data/lib/ost-sdk-ruby/saas/price_points.rb +35 -0
- data/lib/ost-sdk-ruby/saas/recovery_owners.rb +35 -0
- data/lib/ost-sdk-ruby/saas/{v1/token.rb → rules.rb} +6 -9
- data/lib/ost-sdk-ruby/saas/services.rb +3 -17
- data/lib/ost-sdk-ruby/saas/sessions.rb +44 -0
- data/lib/ost-sdk-ruby/saas/tokens.rb +35 -0
- data/lib/ost-sdk-ruby/saas/transactions.rb +53 -0
- data/lib/ost-sdk-ruby/saas/users.rb +52 -0
- data/lib/ost-sdk-ruby/test/balance_test.rb +18 -0
- data/lib/ost-sdk-ruby/test/chains_test.rb +18 -0
- data/lib/ost-sdk-ruby/test/device_managers_test.rb +18 -0
- data/lib/ost-sdk-ruby/test/devices_test.rb +41 -0
- data/lib/ost-sdk-ruby/test/price_points_test.rb +18 -0
- data/lib/ost-sdk-ruby/test/recovery_owners_test.rb +21 -0
- data/lib/ost-sdk-ruby/test/rules_test.rb +18 -0
- data/lib/ost-sdk-ruby/test/sessions_test.rb +28 -0
- data/lib/ost-sdk-ruby/test/signature_generation_test.rb +33 -0
- data/lib/ost-sdk-ruby/test/tokens_test.rb +18 -0
- data/lib/ost-sdk-ruby/test/transactions_test.rb +43 -0
- data/lib/ost-sdk-ruby/test/users_test.rb +32 -0
- data/lib/ost-sdk-ruby/util.rb +1 -1
- data/lib/ost-sdk-ruby/util/common_validator.rb +14 -0
- data/lib/ost-sdk-ruby/util/custom_error_response.rb +56 -0
- data/lib/ost-sdk-ruby/util/http_helper.rb +105 -97
- data/lib/ost-sdk-ruby/util/services_helper.rb +3 -75
- data/lib/ost-sdk-ruby/version.rb +1 -1
- metadata +42 -32
- data/Rakefile +0 -8
- data/lib/ost-sdk-ruby/saas/v0/services.rb +0 -32
- data/lib/ost-sdk-ruby/saas/v0/transaction_kind.rb +0 -85
- data/lib/ost-sdk-ruby/saas/v0/users.rb +0 -73
- data/lib/ost-sdk-ruby/saas/v1.1/services.rb +0 -41
- data/lib/ost-sdk-ruby/saas/v1/actions.rb +0 -64
- data/lib/ost-sdk-ruby/saas/v1/airdrops.rb +0 -55
- data/lib/ost-sdk-ruby/saas/v1/services.rb +0 -36
- data/lib/ost-sdk-ruby/saas/v1/transactions.rb +0 -55
- data/lib/ost-sdk-ruby/saas/v1/transfers.rb +0 -55
- data/lib/ost-sdk-ruby/saas/v1/users.rb +0 -64
- data/lib/ost-sdk-ruby/util/result.rb +0 -240
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative "../../../lib/ost-sdk-ruby/util"
|
2
|
+
require_relative "../../../lib/ost-sdk-ruby/saas"
|
3
|
+
require "test/unit"
|
4
|
+
require_relative "../../../lib/config"
|
5
|
+
|
6
|
+
class SignatureGenerationTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def signature_test_obj
|
9
|
+
params = {
|
10
|
+
api_secret: "a0431203671f42c079b2154066fd04ba"
|
11
|
+
}
|
12
|
+
@signature_test_obj ||= OSTSdk::Util::HTTPHelper.new(params)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_signature
|
16
|
+
test_obj_for_signature = {
|
17
|
+
a: nil,
|
18
|
+
b: [],
|
19
|
+
c: '',
|
20
|
+
d: ["", nil],
|
21
|
+
e: {},
|
22
|
+
k1: 125.45,
|
23
|
+
k2: 'Tejas',
|
24
|
+
aaaaa: {a: {a: "L21A", b: "L21B"}, b: {a: "L22A", b: "L22B"}, c: {a: "L23A", b: "L23B"}},
|
25
|
+
arrayValues: ["Hello", "There", "12345"],
|
26
|
+
garbage_str: "~!@#$%^&*()_+-= {}[]:\";'?/<>,. this is garbage"
|
27
|
+
}
|
28
|
+
test_endpoint = "/api/v2/users"
|
29
|
+
signature = signature_test_obj.get_signature_for_test(test_endpoint, test_obj_for_signature)
|
30
|
+
assert_equal(signature, "28664cdbc613b66835d7bcf825dce719fb8e0621992c291ba9bd1767c1c5560d")
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative "../../../lib/ost-sdk-ruby/util"
|
2
|
+
require_relative "../../../lib/ost-sdk-ruby/saas"
|
3
|
+
require "test/unit"
|
4
|
+
require_relative "../../../lib/config"
|
5
|
+
|
6
|
+
class TokensTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def tokens_service
|
9
|
+
@tokens_service ||= Config::OST_SDK.services.tokens
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_tokens_get
|
13
|
+
result = tokens_service.get()
|
14
|
+
puts "result=>#{result}" unless result["success"]
|
15
|
+
assert_equal(result["success"], true )
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require_relative "../../../lib/ost-sdk-ruby/util"
|
2
|
+
require_relative "../../../lib/ost-sdk-ruby/saas"
|
3
|
+
require "test/unit"
|
4
|
+
require_relative "../../../lib/config"
|
5
|
+
|
6
|
+
class TransactionsTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def transactions_service
|
9
|
+
@transactions_service ||= Config::OST_SDK.services.transactions
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_transactions_execute
|
13
|
+
result = transactions_service.execute({
|
14
|
+
user_id: Config::OST_KIT_COMPANY_USER_ID,
|
15
|
+
to: Config::OST_KIT_RULE_ADDRESS,
|
16
|
+
raw_calldata: {
|
17
|
+
method: "directTransfers",
|
18
|
+
parameters: [[Config::OST_KIT_USER2_TOKEN_HOLDER_ADDRESS],["1"]]
|
19
|
+
}.to_json
|
20
|
+
})
|
21
|
+
puts "result=>#{result}" unless result["success"]
|
22
|
+
|
23
|
+
assert_equal(result["success"], true)
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_transactions_get
|
27
|
+
result = transactions_service.get({
|
28
|
+
user_id: Config::OST_KIT_USER_ID,
|
29
|
+
transaction_id: Config::OST_KIT_TRANSACTION_ID
|
30
|
+
})
|
31
|
+
puts "result=>#{result}" unless result["success"]
|
32
|
+
assert_equal(result["success"], true)
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_transactions_get_list
|
36
|
+
result = transactions_service.get_list({
|
37
|
+
user_id: Config::OST_KIT_USER_ID
|
38
|
+
})
|
39
|
+
puts "result=>#{result}" unless result["success"]
|
40
|
+
assert_equal(result["success"], true)
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative "../../../lib/ost-sdk-ruby/util"
|
2
|
+
require_relative "../../../lib/ost-sdk-ruby/saas"
|
3
|
+
require "test/unit"
|
4
|
+
require_relative "../../../lib/config"
|
5
|
+
|
6
|
+
class UsersTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def users_service
|
9
|
+
@users_service ||= Config::OST_SDK.services.users
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_users_create
|
13
|
+
result = users_service.create()
|
14
|
+
puts "result=>#{result}" unless result["success"]
|
15
|
+
assert_equal(result["success"], true)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_users_get
|
19
|
+
result = users_service.get({
|
20
|
+
user_id: Config::OST_KIT_USER_ID
|
21
|
+
})
|
22
|
+
puts "result=>#{result}" unless result["success"]
|
23
|
+
assert_equal(result["success"], true)
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_users_get_list
|
27
|
+
result = users_service.get_list()
|
28
|
+
puts "result=>#{result}" unless result["success"]
|
29
|
+
assert_equal(result["success"], true)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
data/lib/ost-sdk-ruby/util.rb
CHANGED
@@ -4,6 +4,8 @@ module OSTSdk
|
|
4
4
|
|
5
5
|
class CommonValidator
|
6
6
|
|
7
|
+
REGEX_FOR_UUID = /\A[0-9a-z\.\-]+\z/i
|
8
|
+
|
7
9
|
# Check for numeric-ness of an input
|
8
10
|
#
|
9
11
|
# Arguments:
|
@@ -43,6 +45,18 @@ module OSTSdk
|
|
43
45
|
obj.is_a?(Hash) || obj.is_a?(ActionController::Parameters)
|
44
46
|
end
|
45
47
|
|
48
|
+
# Is the value is valid for given key
|
49
|
+
#
|
50
|
+
# Arguments:
|
51
|
+
# object: (String)
|
52
|
+
#
|
53
|
+
# Returns:
|
54
|
+
# Boolean
|
55
|
+
#
|
56
|
+
def self.is_valid_uuid_format?(value)
|
57
|
+
value =~ REGEX_FOR_UUID
|
58
|
+
end
|
59
|
+
|
46
60
|
end
|
47
61
|
|
48
62
|
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module OSTSdk
|
2
|
+
|
3
|
+
module Util
|
4
|
+
|
5
|
+
class CustomErrorResponse
|
6
|
+
|
7
|
+
|
8
|
+
def initialize(params)
|
9
|
+
@code = params[:code]
|
10
|
+
@internal_id = params[:internal_id]
|
11
|
+
@msg = params[:msg]
|
12
|
+
@error_data = params[:error_data]
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
def external_error_response
|
17
|
+
error_response({
|
18
|
+
:code => @code,
|
19
|
+
:internal_id => @internal_id,
|
20
|
+
:msg => @msg,
|
21
|
+
:error_data => @error_data
|
22
|
+
})
|
23
|
+
end
|
24
|
+
|
25
|
+
def default_error_response
|
26
|
+
error_response({
|
27
|
+
:code => 'SOMETHING_WENT_WRONG',
|
28
|
+
:internal_id => "SDK(#{@internal_id})",
|
29
|
+
:msg => @msg,
|
30
|
+
:error_data => []
|
31
|
+
})
|
32
|
+
end
|
33
|
+
|
34
|
+
def timeout_error_response
|
35
|
+
error_response({
|
36
|
+
:code => 'REQUEST_TIMEOUT',
|
37
|
+
:internal_id => "SDK(REQUEST_TIMEOUT)",
|
38
|
+
:msg => '',
|
39
|
+
:error_data => []
|
40
|
+
})
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def error_response(err)
|
46
|
+
{
|
47
|
+
success: false,
|
48
|
+
err: err
|
49
|
+
}
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
@@ -9,7 +9,6 @@ module OSTSdk
|
|
9
9
|
require "openssl"
|
10
10
|
require "net/http"
|
11
11
|
require "json"
|
12
|
-
require 'rack'
|
13
12
|
|
14
13
|
# Initialize
|
15
14
|
#
|
@@ -24,6 +23,13 @@ module OSTSdk
|
|
24
23
|
@api_key = params[:api_key]
|
25
24
|
@api_secret = params[:api_secret]
|
26
25
|
@api_spec = params[:api_spec]
|
26
|
+
@timeout = 10
|
27
|
+
if (params.key?(:config))
|
28
|
+
config = params[:config]
|
29
|
+
if (config.key?(:timeout))
|
30
|
+
@timeout = config[:timeout]
|
31
|
+
end
|
32
|
+
end
|
27
33
|
end
|
28
34
|
|
29
35
|
# Send POST requests
|
@@ -33,18 +39,15 @@ module OSTSdk
|
|
33
39
|
# request_params: (Hash)
|
34
40
|
#
|
35
41
|
# Returns:
|
36
|
-
#
|
42
|
+
# response: (Hash)
|
37
43
|
#
|
38
44
|
def send_post_request(endpoint, request_params)
|
39
45
|
perform_and_handle_exceptions('u_hh_1', 'POST request failed') do
|
40
|
-
|
41
|
-
uri =
|
46
|
+
escaped_query_string = get_query_string(endpoint, request_params)
|
47
|
+
uri = URI(get_api_url(endpoint))
|
42
48
|
http = setup_request(uri)
|
43
|
-
r_params = base_params.merge(request_params)
|
44
|
-
query_string = Rack::Utils.build_nested_query(r_params)
|
45
|
-
escaped_query_string = URI.escape(query_string, '*')
|
46
49
|
if @api_spec
|
47
|
-
return
|
50
|
+
return {request_uri: uri.to_s, request_type: 'POST', request_params: escaped_query_string}
|
48
51
|
else
|
49
52
|
result = http.post(uri.path, escaped_query_string)
|
50
53
|
return format_response(result)
|
@@ -59,21 +62,18 @@ module OSTSdk
|
|
59
62
|
# request_params: (Hash)
|
60
63
|
#
|
61
64
|
# Returns:
|
62
|
-
#
|
65
|
+
# response: (Hash)
|
63
66
|
#
|
64
67
|
def send_get_request(endpoint, request_params)
|
65
68
|
perform_and_handle_exceptions('u_hh_2', 'GET request Failed') do
|
66
|
-
|
67
|
-
|
68
|
-
query_string = Rack::Utils.build_nested_query(r_params)
|
69
|
-
escaped_query_string = URI.escape(query_string, '*')
|
70
|
-
raw_url = get_api_url(endpoint) + "?" + escaped_query_string
|
69
|
+
escaped_query_string = get_query_string(endpoint, request_params)
|
70
|
+
raw_url = get_api_url(endpoint) + "?#{escaped_query_string}"
|
71
71
|
uri = URI(raw_url)
|
72
72
|
if @api_spec
|
73
|
-
return
|
73
|
+
return {request_uri: uri.to_s.split("?")[0], request_type: 'GET', request_params: escaped_query_string}
|
74
74
|
else
|
75
75
|
result = {}
|
76
|
-
Timeout.timeout(
|
76
|
+
Timeout.timeout(@timeout) do
|
77
77
|
result = Net::HTTP.get_response(uri)
|
78
78
|
end
|
79
79
|
return format_response(result)
|
@@ -81,12 +81,27 @@ module OSTSdk
|
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
84
|
+
# Generate a signature for test case. It only creates a signature for a given Hash
|
85
|
+
#
|
86
|
+
# Arguments:
|
87
|
+
# end_point: (String)
|
88
|
+
# request_params: (Hash)
|
89
|
+
#
|
90
|
+
# Returns:
|
91
|
+
# response: (String)
|
92
|
+
#
|
93
|
+
def get_signature_for_test(endpoint, request_params)
|
94
|
+
escaped_query_string = get_escaped_query_string(request_params)
|
95
|
+
string_to_sign = "#{endpoint}?#{escaped_query_string}"
|
96
|
+
generate_signature(string_to_sign)
|
97
|
+
end
|
98
|
+
|
84
99
|
private
|
85
100
|
|
86
101
|
def setup_request(uri)
|
87
102
|
http = Net::HTTP.new(uri.host, uri.port)
|
88
|
-
http.read_timeout =
|
89
|
-
http.open_timeout =
|
103
|
+
http.read_timeout = @timeout
|
104
|
+
http.open_timeout = @timeout
|
90
105
|
if uri.scheme == "https"
|
91
106
|
http.use_ssl = true
|
92
107
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
@@ -94,82 +109,98 @@ module OSTSdk
|
|
94
109
|
http
|
95
110
|
end
|
96
111
|
|
97
|
-
def
|
98
|
-
request_timestamp = Time.now.to_i
|
99
|
-
request_params = request_params.merge("
|
112
|
+
def get_query_string(endpoint, request_params)
|
113
|
+
request_timestamp = Time.now.to_i
|
114
|
+
request_params = request_params.merge("api_request_timestamp" => request_timestamp,
|
115
|
+
"api_key" => @api_key,
|
116
|
+
"api_signature_kind" => "OST1-HMAC-SHA256")
|
117
|
+
escaped_query_string = get_escaped_query_string(request_params)
|
118
|
+
string_to_sign = endpoint + "?" + escaped_query_string
|
119
|
+
signature = generate_signature(string_to_sign)
|
120
|
+
"#{escaped_query_string}&api_signature=#{escape(signature)}"
|
121
|
+
end
|
100
122
|
|
123
|
+
def get_escaped_query_string(request_params)
|
101
124
|
sorted_request_params = sort_param(request_params)
|
102
|
-
|
103
|
-
request_params_escaped_str = URI.escape(request_params_str, "*")
|
104
|
-
|
105
|
-
str = endpoint + '?' + request_params_escaped_str
|
106
|
-
signature = generate_signature(str)
|
107
|
-
{"request_timestamp" => request_timestamp, "signature" => signature, "api_key" => @api_key}
|
125
|
+
build_nested_query(sorted_request_params)
|
108
126
|
end
|
109
127
|
|
110
128
|
def generate_signature(string_to_sign)
|
111
129
|
digest = OpenSSL::Digest.new('sha256')
|
112
|
-
|
113
|
-
signature
|
114
|
-
end
|
115
|
-
|
116
|
-
def post_api_uri(endpoint)
|
117
|
-
URI(@api_base_url + endpoint)
|
130
|
+
OpenSSL::HMAC.hexdigest(digest, @api_secret, string_to_sign)
|
118
131
|
end
|
119
132
|
|
120
133
|
def get_api_url(endpoint)
|
121
134
|
@api_base_url + endpoint
|
122
135
|
end
|
123
136
|
|
137
|
+
def build_nested_query(value, prefix = nil)
|
138
|
+
case value
|
139
|
+
when Array
|
140
|
+
value.map {|v|
|
141
|
+
build_nested_query(v, "#{prefix}[]")
|
142
|
+
}.reject(&:empty?).join("&")
|
143
|
+
when Hash
|
144
|
+
value.map {|k, v|
|
145
|
+
build_nested_query(v, prefix ? "#{prefix}[#{k}]" : k)
|
146
|
+
}.reject(&:empty?).join('&')
|
147
|
+
# when nil
|
148
|
+
# "#{escape(prefix)}="
|
149
|
+
else
|
150
|
+
raise ArgumentError, "value must be a Hash" if prefix.nil?
|
151
|
+
"#{escape(prefix)}=#{escape(value)}"
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
def escape(s)
|
156
|
+
s = URI.encode_www_form_component(s)
|
157
|
+
|
158
|
+
# escape [*] if not escaped by ruby
|
159
|
+
s = URI.escape(s, "*")
|
160
|
+
|
161
|
+
# unescape [~] if escaped by ruby
|
162
|
+
s = URI.unescape(s, "%7E")
|
163
|
+
s
|
164
|
+
end
|
165
|
+
|
124
166
|
# Method which is called in service perform and handle exceptions
|
125
167
|
#
|
126
|
-
def perform_and_handle_exceptions(
|
168
|
+
def perform_and_handle_exceptions(internal_id = 'swr', msg = 'Something Went Wrong', &block)
|
127
169
|
begin
|
128
170
|
yield if block_given?
|
171
|
+
rescue Timeout::Error => ex
|
172
|
+
OSTSdk::Util::CustomErrorResponse.new({internal_id: internal_id, msg: msg}).timeout_error_response
|
129
173
|
rescue StandardError => se
|
130
|
-
OSTSdk::Util::
|
174
|
+
OSTSdk::Util::CustomErrorResponse.new({internal_id: internal_id, msg: msg}).default_error_response
|
131
175
|
end
|
132
176
|
end
|
133
177
|
|
134
178
|
def sort_param(params)
|
135
179
|
|
136
|
-
if
|
180
|
+
if params.is_a?(Hash)
|
137
181
|
params = JSON.parse(params.to_json)
|
138
|
-
|
139
|
-
params
|
140
|
-
|
182
|
+
data = {}
|
183
|
+
params.sort.each do |ele|
|
184
|
+
key = ele[0]
|
185
|
+
val = ele[1]
|
186
|
+
data[key] = sort_param(val)
|
187
|
+
end
|
141
188
|
|
142
|
-
|
143
|
-
|
189
|
+
elsif params.is_a?(Array)
|
190
|
+
params = JSON.parse(params.to_json)
|
144
191
|
data = []
|
145
192
|
params.each do |ele|
|
146
|
-
|
147
|
-
data << sort_param(ele)
|
148
|
-
else
|
149
|
-
data << ele.to_s
|
150
|
-
end
|
193
|
+
data << sort_param(ele)
|
151
194
|
end
|
152
|
-
|
195
|
+
else
|
196
|
+
data = params.to_s
|
153
197
|
end
|
154
198
|
|
155
|
-
|
156
|
-
key = ele[0]
|
157
|
-
val = ele[1]
|
158
|
-
sorted_val = val
|
159
|
-
|
160
|
-
if [Hash, Array].include?(val.class)
|
161
|
-
sorted_val = sort_param(val)
|
162
|
-
else
|
163
|
-
sorted_val = sorted_val.to_s
|
164
|
-
end
|
165
|
-
|
166
|
-
res[key] = sorted_val
|
167
|
-
end
|
168
|
-
return res
|
199
|
+
return data
|
169
200
|
end
|
170
201
|
|
171
202
|
def format_response(response)
|
172
|
-
json_raw_response = JSON.parse(response.body)
|
203
|
+
json_raw_response = JSON.parse(response.body) rescue {}
|
173
204
|
# If internal response
|
174
205
|
if json_raw_response.has_key?('success') || json_raw_response.has_key?('err')
|
175
206
|
format_internal_response(response)
|
@@ -180,58 +211,35 @@ module OSTSdk
|
|
180
211
|
|
181
212
|
def format_internal_response(response)
|
182
213
|
json_raw_response = JSON.parse(response.body)
|
183
|
-
|
184
|
-
OSTSdk::Util::Result.success(
|
185
|
-
{
|
186
|
-
data: json_raw_response['data'],
|
187
|
-
http_code: response.code
|
188
|
-
}
|
189
|
-
)
|
190
|
-
else
|
191
|
-
err_data = json_raw_response['err']
|
192
|
-
OSTSdk::Util::Result.error(
|
193
|
-
{
|
194
|
-
error: err_data['code'],
|
195
|
-
internal_id: err_data['internal_id'],
|
196
|
-
error_message: err_data['msg'],
|
197
|
-
error_data: err_data['error_data'],
|
198
|
-
http_code: response.code
|
199
|
-
}
|
200
|
-
)
|
201
|
-
end
|
214
|
+
json_raw_response
|
202
215
|
end
|
203
216
|
|
204
217
|
def format_external_response(response_code)
|
205
218
|
case response_code.to_i
|
206
|
-
when 429
|
207
|
-
code = 'TOO_MANY_REQUESTS'
|
208
|
-
internal_id = 'SDK(TOO_MANY_REQUESTS)'
|
209
|
-
message = 'Too many requests have been received in a minute.'
|
210
219
|
when 502
|
211
220
|
code = 'BAD_GATEWAY'
|
212
221
|
internal_id = 'SDK(BAD_GATEWAY)'
|
213
|
-
|
222
|
+
msg = 'Something went wrong.'
|
214
223
|
when 503
|
215
224
|
code = 'SERVICE_UNAVAILABLE'
|
216
225
|
internal_id = 'SDK(SERVICE_UNAVAILABLE)'
|
217
|
-
|
226
|
+
msg = 'API under maintenance.'
|
218
227
|
when 504
|
219
228
|
code = 'GATEWAY_TIMEOUT'
|
220
229
|
internal_id = 'SDK(GATEWAY_TIMEOUT)'
|
221
|
-
|
230
|
+
msg = 'Request timed out.'
|
222
231
|
else
|
223
232
|
code = 'SOMETHING_WENT_WRONG'
|
224
233
|
internal_id = 'SDK(SOMETHING_WENT_WRONG)'
|
225
|
-
|
234
|
+
msg = 'Something went wrong.'
|
226
235
|
end
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
)
|
236
|
+
|
237
|
+
OSTSdk::Util::CustomErrorResponse.new({
|
238
|
+
code: code,
|
239
|
+
msg: msg,
|
240
|
+
internal_id: internal_id,
|
241
|
+
error_data: []
|
242
|
+
}).external_error_response
|
235
243
|
end
|
236
244
|
|
237
245
|
end
|