ost-kyc-sdk-ruby 2.0.0.beta.1 → 2.0.0.beta.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 +4 -4
- data/lib/config.rb +8 -0
- data/lib/ost-kyc-sdk-ruby.rb +8 -0
- data/lib/ost-kyc-sdk-ruby/saas.rb +18 -0
- data/lib/ost-kyc-sdk-ruby/saas/base.rb +116 -0
- data/lib/ost-kyc-sdk-ruby/saas/manifest.rb +30 -0
- data/lib/ost-kyc-sdk-ruby/saas/services.rb +44 -0
- data/lib/ost-kyc-sdk-ruby/saas/users.rb +51 -0
- data/lib/ost-kyc-sdk-ruby/saas/users_kyc.rb +81 -0
- data/lib/ost-kyc-sdk-ruby/saas/users_kyc_detail.rb +33 -0
- data/lib/ost-kyc-sdk-ruby/saas/validators.rb +36 -0
- data/lib/ost-kyc-sdk-ruby/test/signature_generation_test.rb +35 -0
- data/lib/ost-kyc-sdk-ruby/test/user_kyc_detail_test.rb +17 -0
- data/lib/ost-kyc-sdk-ruby/test/user_kyc_test.rb +41 -0
- data/lib/ost-kyc-sdk-ruby/test/user_test.rb +47 -0
- data/lib/ost-kyc-sdk-ruby/test/validators_test.rb +17 -0
- data/lib/ost-kyc-sdk-ruby/util.rb +13 -0
- data/lib/ost-kyc-sdk-ruby/util/api_credentials.rb +32 -0
- data/lib/ost-kyc-sdk-ruby/util/common_validator.rb +50 -0
- data/lib/ost-kyc-sdk-ruby/util/http_helper.rb +251 -0
- data/lib/ost-kyc-sdk-ruby/util/result.rb +233 -0
- data/lib/ost-kyc-sdk-ruby/util/services_helper.rb +102 -0
- data/lib/ost-kyc-sdk-ruby/version.rb +5 -0
- metadata +24 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5aa3fa49768c56a8193a60c086bf03a6cd61d43d8837fa5d71973f38d606818f
|
4
|
+
data.tar.gz: c90dfe42fc423c08ad21f749b5a4cda0d18bdc2ccee1ba6667a38748d6b05bb1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a0fcd2f3b009a3c28e8ea1e94e10ad8fe94324edd198644b648b76976df7b99bfefe6c74aa389ea782ecec1e9a22ba4fbecbbab1006f467340577760f8f3249
|
7
|
+
data.tar.gz: f51a5799fe42b1973f735ce645e8f2b09ea36bd4b7b9752f16ab0df6092b0640ed4c4a09c4843b93abc145e214ce58a92f4461f17d043ba6f158e0d769788e5a
|
data/lib/config.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'saas/services'
|
2
|
+
|
3
|
+
require_relative 'saas/base'
|
4
|
+
|
5
|
+
require_relative 'saas/services'
|
6
|
+
require_relative 'saas/manifest'
|
7
|
+
require_relative 'saas/users'
|
8
|
+
require_relative 'saas/users_kyc'
|
9
|
+
require_relative 'saas/users_kyc_detail'
|
10
|
+
require_relative 'saas/validators'
|
11
|
+
|
12
|
+
module OstKycSdkRuby
|
13
|
+
|
14
|
+
module Saas
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
module OstKycSdkRuby
|
2
|
+
|
3
|
+
module Saas
|
4
|
+
|
5
|
+
class Base
|
6
|
+
|
7
|
+
REGEX_VALUE = /\A[0-9a-z\.\-]+\z/i
|
8
|
+
|
9
|
+
include OstKycSdkRuby::Util::ServicesHelper
|
10
|
+
|
11
|
+
attr_reader :http_helper
|
12
|
+
|
13
|
+
# OstKycSdkRuby::Saas::Base
|
14
|
+
|
15
|
+
# Initialize
|
16
|
+
#
|
17
|
+
# Arguments:
|
18
|
+
# api_base_url: (String)
|
19
|
+
# api_key: (String)
|
20
|
+
# api_secret: (String)
|
21
|
+
# api_spec: (Boolean)
|
22
|
+
#
|
23
|
+
def initialize(params)
|
24
|
+
|
25
|
+
fail 'missing API Base URL' if params[:api_base_url].nil?
|
26
|
+
fail 'missing API Key' if params[:api_key].nil?
|
27
|
+
fail 'missing API Secret' if params[:api_secret].nil?
|
28
|
+
|
29
|
+
params[:api_base_url] = sanitize_api_base_url(params[:api_base_url])
|
30
|
+
|
31
|
+
@http_helper = OstKycSdkRuby::Util::HTTPHelper.new(params)
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
# Get id key from params hash and delete it
|
38
|
+
#
|
39
|
+
# Arguments:
|
40
|
+
# params: (Hash)
|
41
|
+
#
|
42
|
+
# Returns:
|
43
|
+
# id: (Integer)
|
44
|
+
#
|
45
|
+
#
|
46
|
+
# if (null == params || !params.containsKey("id") || null == params.get("id")) {
|
47
|
+
# throw new MissingParameter("id");
|
48
|
+
# }
|
49
|
+
def get_id!(params)
|
50
|
+
get_value_for_key(params, "id")
|
51
|
+
end
|
52
|
+
|
53
|
+
# Get user_id key from params hash and delete it
|
54
|
+
#
|
55
|
+
# Arguments:
|
56
|
+
# params: (Hash)
|
57
|
+
#
|
58
|
+
# Returns:
|
59
|
+
# id: (Integer)
|
60
|
+
#
|
61
|
+
def get_user_id!(params)
|
62
|
+
get_value_for_key(params, "user_id")
|
63
|
+
end
|
64
|
+
|
65
|
+
# Get value for specific key
|
66
|
+
#
|
67
|
+
# Arguments:
|
68
|
+
# params: (Hash)
|
69
|
+
#
|
70
|
+
# Returns:
|
71
|
+
# id: (Integer)
|
72
|
+
#
|
73
|
+
def get_value_for_key(params, key)
|
74
|
+
if params.has_key?(key.to_sym)
|
75
|
+
value = params.delete(key.to_sym)
|
76
|
+
elsif params.has_key?(key.to_s)
|
77
|
+
value = params.delete(key.to_s)
|
78
|
+
end
|
79
|
+
raise "#{key.to_s} missing in request params" if value.nil?
|
80
|
+
raise "#{key.to_s} invalid in request params" if !(is_valid_value?(value.to_s))
|
81
|
+
value
|
82
|
+
end
|
83
|
+
|
84
|
+
# Sanitize API Base URL
|
85
|
+
#
|
86
|
+
# Arguments:
|
87
|
+
# params: (String)
|
88
|
+
#
|
89
|
+
# Returns:
|
90
|
+
# api_base_url: (String)
|
91
|
+
#
|
92
|
+
def sanitize_api_base_url(api_base_url)
|
93
|
+
|
94
|
+
api_base_url = api_base_url.gsub(/\/$/, '') # remove trailing slash
|
95
|
+
|
96
|
+
return api_base_url
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
# Is the value is valid for given key
|
101
|
+
#
|
102
|
+
# * Author: Puneet
|
103
|
+
# * Date: 10/10/2017
|
104
|
+
# * Reviewed By: Sunil
|
105
|
+
#
|
106
|
+
# @return [Boolean] returns a boolean
|
107
|
+
#
|
108
|
+
def is_valid_value?(value)
|
109
|
+
value =~ REGEX_VALUE
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
113
|
+
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module OstKycSdkRuby
|
2
|
+
|
3
|
+
module Saas
|
4
|
+
|
5
|
+
class Manifest
|
6
|
+
|
7
|
+
attr_reader :users_kyc, :users, :users_kyc_detail, :validators
|
8
|
+
|
9
|
+
# Initialize
|
10
|
+
#
|
11
|
+
# Arguments:
|
12
|
+
# api_base_url: (String)
|
13
|
+
# api_key: (String)
|
14
|
+
# api_secret: (String)
|
15
|
+
# api_spec: (Boolean)
|
16
|
+
#
|
17
|
+
def initialize(params)
|
18
|
+
|
19
|
+
@users = OstKycSdkRuby::Saas::Users.new(params)
|
20
|
+
@users_kyc = OstKycSdkRuby::Saas::UsersKyc.new(params)
|
21
|
+
@users_kyc_detail = OstKycSdkRuby::Saas::UserKycDetail.new(params)
|
22
|
+
@validators = OstKycSdkRuby::Saas::Validators.new(params)
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module OstKycSdkRuby
|
2
|
+
|
3
|
+
module Saas
|
4
|
+
|
5
|
+
class Services
|
6
|
+
|
7
|
+
## OstKycSdkRuby::Saas::Services
|
8
|
+
|
9
|
+
attr_reader :services
|
10
|
+
|
11
|
+
# Initialize
|
12
|
+
#
|
13
|
+
# Arguments:
|
14
|
+
# api_base_url: (String)
|
15
|
+
# api_key: (String)
|
16
|
+
# api_secret: (String)
|
17
|
+
# api_spec: (Boolean)
|
18
|
+
#
|
19
|
+
def initialize(params)
|
20
|
+
|
21
|
+
fail 'missing API Base URL' if params[:api_base_url].nil?
|
22
|
+
fail 'missing API Key' if params[:api_key].nil?
|
23
|
+
fail 'missing API Secret' if params[:api_secret].nil?
|
24
|
+
|
25
|
+
params[:api_base_url] = params[:api_base_url].gsub(/\/$/, '') # remove trailing slash
|
26
|
+
params[:api_spec] = false if params[:api_spec].nil?
|
27
|
+
|
28
|
+
set_manifest(params)
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def set_manifest(params)
|
35
|
+
|
36
|
+
@services = OstKycSdkRuby::Saas::Manifest.new(params)
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module OstKycSdkRuby
|
2
|
+
|
3
|
+
module Saas
|
4
|
+
|
5
|
+
class Users < OstKycSdkRuby::Saas::Base
|
6
|
+
|
7
|
+
# Initialize
|
8
|
+
#
|
9
|
+
# Arguments:
|
10
|
+
# api_base_url: (String)
|
11
|
+
# api_key: (String)
|
12
|
+
# api_secret: (String)
|
13
|
+
# api_spec: (Boolean)
|
14
|
+
#
|
15
|
+
def initialize(params)
|
16
|
+
super
|
17
|
+
@url_prefix = '/api/v2/users'
|
18
|
+
end
|
19
|
+
|
20
|
+
# Create a new user
|
21
|
+
#
|
22
|
+
# Returns:
|
23
|
+
# response: (OstKycSdkRuby::Util::Result)
|
24
|
+
#
|
25
|
+
def create(params = {})
|
26
|
+
http_helper.send_post_request("#{@url_prefix}", params)
|
27
|
+
end
|
28
|
+
|
29
|
+
# Get an existing user
|
30
|
+
#
|
31
|
+
# Returns:
|
32
|
+
# response: (OstKycSdkRuby::Util::Result)
|
33
|
+
#
|
34
|
+
def get(params)
|
35
|
+
http_helper.send_get_request("#{@url_prefix}/#{get_id!(params)}", params)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Fetches the list of an existing users
|
39
|
+
#
|
40
|
+
# Returns:
|
41
|
+
# response: (OstKycSdkRuby::Util::Result)
|
42
|
+
#
|
43
|
+
def list(params = {})
|
44
|
+
http_helper.send_get_request("#{@url_prefix}", params)
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
module OstKycSdkRuby
|
2
|
+
|
3
|
+
module Saas
|
4
|
+
|
5
|
+
class UsersKyc < OstKycSdkRuby::Saas::Base
|
6
|
+
|
7
|
+
# Initialize
|
8
|
+
#
|
9
|
+
# Arguments:
|
10
|
+
# api_base_url: (String)
|
11
|
+
# api_key: (String)
|
12
|
+
# api_secret: (String)
|
13
|
+
# api_spec: (Boolean)
|
14
|
+
#
|
15
|
+
def initialize(params)
|
16
|
+
super
|
17
|
+
@url_prefix = '/api/v2/users-kyc'
|
18
|
+
end
|
19
|
+
|
20
|
+
# Fetches the list of an existing Users Kyc
|
21
|
+
#
|
22
|
+
# Returns:
|
23
|
+
# response: (OstKycSdkRuby::Util::Result)
|
24
|
+
#
|
25
|
+
def list(params = {})
|
26
|
+
http_helper.send_get_request("#{@url_prefix}", params)
|
27
|
+
end
|
28
|
+
|
29
|
+
# Creates/Updates a new User Kyc
|
30
|
+
#
|
31
|
+
# Arguments:
|
32
|
+
# params: (Hash)
|
33
|
+
#
|
34
|
+
# Returns:
|
35
|
+
# response: (OstKycSdkRuby::Util::Result)
|
36
|
+
#
|
37
|
+
def submit_kyc(params)
|
38
|
+
http_helper.send_post_request("#{@url_prefix}/#{get_user_id!(params)}", params)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Get an existing User Kyc
|
42
|
+
#
|
43
|
+
# Arguments:
|
44
|
+
# params: (Hash)
|
45
|
+
#
|
46
|
+
# Returns:
|
47
|
+
# response: (OstKycSdkRuby::Util::Result)
|
48
|
+
#
|
49
|
+
def get(params)
|
50
|
+
http_helper.send_get_request("#{@url_prefix}/#{get_user_id!(params)}", params)
|
51
|
+
end
|
52
|
+
|
53
|
+
# Get an existing Presigned URL via POST call
|
54
|
+
#
|
55
|
+
# Arguments:
|
56
|
+
# params: (Hash)
|
57
|
+
#
|
58
|
+
# Returns:
|
59
|
+
# response: (OstKycSdkRuby::Util::Result)
|
60
|
+
#
|
61
|
+
def get_presigned_url_post(params = {})
|
62
|
+
http_helper.send_get_request("#{@url_prefix}/pre-signed-urls/for-post", params)
|
63
|
+
end
|
64
|
+
|
65
|
+
# Get an existing Presigned URL via PUT call
|
66
|
+
#
|
67
|
+
# Arguments:
|
68
|
+
# params: (Hash)
|
69
|
+
#
|
70
|
+
# Returns:
|
71
|
+
# response: (OstKycSdkRuby::Util::Result)
|
72
|
+
#
|
73
|
+
def get_presigned_url_put(params = {})
|
74
|
+
http_helper.send_get_request("#{@url_prefix}/pre-signed-urls/for-put", params)
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module OstKycSdkRuby
|
2
|
+
|
3
|
+
module Saas
|
4
|
+
|
5
|
+
class UserKycDetail < OstKycSdkRuby::Saas::Base
|
6
|
+
|
7
|
+
# Initialize
|
8
|
+
#
|
9
|
+
# Arguments:
|
10
|
+
# api_base_url: (String)
|
11
|
+
# api_key: (String)
|
12
|
+
# api_secret: (String)
|
13
|
+
# api_spec: (Boolean)
|
14
|
+
#
|
15
|
+
def initialize(params)
|
16
|
+
super
|
17
|
+
@url_prefix = '/api/v2/users-kyc-detail'
|
18
|
+
end
|
19
|
+
|
20
|
+
# Get an existing User Kyc Detail
|
21
|
+
#
|
22
|
+
# Returns:
|
23
|
+
# response: (OstKycSdkRuby::Util::Result)
|
24
|
+
#
|
25
|
+
def get(params)
|
26
|
+
http_helper.send_get_request("#{@url_prefix}/#{get_user_id!(params)}", params)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module OstKycSdkRuby
|
2
|
+
|
3
|
+
module Saas
|
4
|
+
|
5
|
+
class Validators < OstKycSdkRuby::Saas::Base
|
6
|
+
|
7
|
+
# Initialize
|
8
|
+
#
|
9
|
+
# Arguments:
|
10
|
+
# api_base_url: (String)
|
11
|
+
# api_key: (String)
|
12
|
+
# api_secret: (String)
|
13
|
+
# api_spec: (Boolean)
|
14
|
+
#
|
15
|
+
def initialize(params)
|
16
|
+
super
|
17
|
+
@url_prefix = '/api/v2'
|
18
|
+
end
|
19
|
+
|
20
|
+
# Verify Ethereum Address
|
21
|
+
#
|
22
|
+
# Arguments:
|
23
|
+
# params: (Hash)
|
24
|
+
#
|
25
|
+
# Returns:
|
26
|
+
# response: (OstKycSdkRuby::Util::Result)
|
27
|
+
#
|
28
|
+
def verify_ethereum_address(params)
|
29
|
+
http_helper.send_get_request("#{@url_prefix}/ethereum-address-validation", params)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require_relative "../../../lib/ost-kyc-sdk-ruby/util"
|
2
|
+
require_relative "../../../lib/ost-kyc-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 = {api_secret: "35f346e5ef825ed4499da98a6ac6b401"}
|
10
|
+
@signature_test_obj ||= OstKycSdkRuby::Util::HTTPHelper.new(params)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_signature
|
14
|
+
test_obj_for_signature = {
|
15
|
+
k1: 'Rachin',
|
16
|
+
k2: 'tejas',
|
17
|
+
list2: [
|
18
|
+
{a: 'L21A', b: 'L21B'},
|
19
|
+
{a: 'L22A', b: 'L22B'},
|
20
|
+
{a: 'L23A', b: 'L23B'}
|
21
|
+
],
|
22
|
+
make_mistakes: "",
|
23
|
+
nice_param: [],
|
24
|
+
empty_obj: {},
|
25
|
+
empty_str: '',
|
26
|
+
garbage_str: "~^[]%$#@!&*~,./?~()-_'this is garbage",
|
27
|
+
id: 11003,
|
28
|
+
email: 'mayur+67@ost.com'
|
29
|
+
}
|
30
|
+
test_endpoint = "/api/v2/users"
|
31
|
+
signature = signature_test_obj.get_signature_for_test(test_endpoint,test_obj_for_signature)
|
32
|
+
assert_equal(signature, "c42188c53bfdf84e542a0a9c0a78d19c9f497c61e816f169e1907bc98477eb82")
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative "../../../lib/ost-kyc-sdk-ruby/util"
|
2
|
+
require_relative "../../../lib/ost-kyc-sdk-ruby/saas"
|
3
|
+
require "test/unit"
|
4
|
+
require_relative "../../../lib/config"
|
5
|
+
|
6
|
+
class UserKycDetailTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def user_kyc_detail_obj
|
9
|
+
@user_kyc_detail_obj ||= Config::OST_SDK.services.users_kyc_detail
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_user_kyc_detail_get
|
13
|
+
result = user_kyc_detail_obj.get(user_id: ENV['USER_ID'])
|
14
|
+
assert_equal(result.success?, true )
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require_relative "../../../lib/ost-kyc-sdk-ruby/util"
|
2
|
+
require_relative "../../../lib/ost-kyc-sdk-ruby/saas"
|
3
|
+
require "test/unit"
|
4
|
+
require_relative "../../../lib/config"
|
5
|
+
|
6
|
+
class UserKycTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def user_kyc_obj
|
9
|
+
@user_kyc_obj ||= Config::OST_SDK.services.users_kyc
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_user_kyc_get
|
13
|
+
result = user_kyc_obj.get(user_id: ENV['USER_ID'])
|
14
|
+
assert_equal(result.success?, true )
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_submit_kyc
|
18
|
+
params = {user_id: ENV['USER_ID'], first_name:'aniket',last_name:'ayachit', birthdate:'21/12/1991', country:'india', nationality:'indian', document_id_number:'arqpa7659a',document_id_file_path:'2/i/016be96da275031de2787b57c99f1471', selfie_file_path:'2/i/9e8d3a5a7a58f0f1be50b7876521aebc', residence_proof_file_path:'2/i/4ed790b2d525f4c7b30fbff5cb7bbbdb', ethereum_address: '0xdfbc84ccac430f2c0455c437adf417095d7ad68e', estimated_participation_amount:'2', street_address:'afawfveav ',city:'afawfveav', state:'afawfveav',postal_code:'afawfveav','investor_proof_files_path':['2/i/9ff6374909897ca507ba3077ee8587da', '2/i/4872730399670c6d554ab3821d63ebce']}
|
19
|
+
result = user_kyc_obj.submit_kyc(params)
|
20
|
+
assert_equal(result.success?, false )
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_user_kyc_list
|
24
|
+
result = user_kyc_obj.list()
|
25
|
+
assert_equal(result.success?, true )
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_presigned_url_for_put
|
29
|
+
params = {files: {selfie: "image/jpeg"}}
|
30
|
+
result = user_kyc_obj.get_presigned_url_put(params)
|
31
|
+
assert_equal(result.success?, true )
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_presigned_url_for_post
|
35
|
+
params = {files: {selfie: "image/jpeg"}}
|
36
|
+
result = user_kyc_obj.get_presigned_url_post(params)
|
37
|
+
assert_equal(result.success?, true )
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require_relative "../../../lib/ost-kyc-sdk-ruby/util"
|
2
|
+
require_relative "../../../lib/ost-kyc-sdk-ruby/saas"
|
3
|
+
require "test/unit"
|
4
|
+
require_relative "../../../lib/config"
|
5
|
+
|
6
|
+
class UserTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def user_obj
|
9
|
+
@user_obj ||= Config::OST_SDK.services.users
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_user_get
|
13
|
+
result = user_obj.get(id: ENV['USER_ID'])
|
14
|
+
assert_equal(result.success?, true)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_user_get_with_zero_as_user_id
|
18
|
+
result = user_obj.get(id: 0)
|
19
|
+
assert_equal(result.success?, false)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_user_get_with_null_as_user_id
|
23
|
+
assert_raise(RuntimeError) {
|
24
|
+
user_obj.get(id: "")
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_user_list_with_total_entry_in_meta
|
29
|
+
params = {order: 'asc', limit: 1, filters: {is_kyc_submitted: false}}
|
30
|
+
result = user_obj.list(params)
|
31
|
+
assert_equal(result.data["meta"]["next_page_payload"]["limit"], 1)
|
32
|
+
assert_equal(result.data["meta"]["next_page_payload"]["filters"]["is_kyc_submitted"], "false")
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_user_create
|
36
|
+
unique_email = "usertest+#{Time.now.to_i}_#{RUBY_VERSION}@ost.com"
|
37
|
+
result = user_obj.create(email: unique_email)
|
38
|
+
assert_equal(result.success?, true)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_user_list
|
42
|
+
result = user_obj.list()
|
43
|
+
assert_equal(result.success?, true)
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative "../../../lib/ost-kyc-sdk-ruby/util"
|
2
|
+
require_relative "../../../lib/ost-kyc-sdk-ruby/saas"
|
3
|
+
require "test/unit"
|
4
|
+
require_relative "../../../lib/config"
|
5
|
+
|
6
|
+
class ValidatorsTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def validators_obj
|
9
|
+
@validators_obj ||= Config::OST_SDK.services.validators
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_validators_get
|
13
|
+
result = validators_obj.verify_ethereum_address(ethereum_address: "0x7f2ED21D1702057C7d9f163cB7e5458FA2B6B7c4")
|
14
|
+
assert_equal(result.success?, true )
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require_relative 'util/common_validator'
|
2
|
+
require_relative 'util/result'
|
3
|
+
require_relative 'util/api_credentials'
|
4
|
+
require_relative 'util/http_helper'
|
5
|
+
require_relative 'util/services_helper'
|
6
|
+
|
7
|
+
module OstKycSdkRuby
|
8
|
+
|
9
|
+
module Util
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module OstKycSdkRuby
|
2
|
+
|
3
|
+
module Util
|
4
|
+
|
5
|
+
class APICredentials
|
6
|
+
|
7
|
+
# Initialize
|
8
|
+
#
|
9
|
+
# Arguments:
|
10
|
+
# api_key: (String)
|
11
|
+
# api_secret: (String)
|
12
|
+
#
|
13
|
+
def initialize(api_key, api_secret)
|
14
|
+
@api_key = api_key
|
15
|
+
@api_secret = api_secret
|
16
|
+
end
|
17
|
+
|
18
|
+
# Returns:
|
19
|
+
# api_key: (String)
|
20
|
+
#
|
21
|
+
attr_reader :api_key
|
22
|
+
|
23
|
+
# Returns:
|
24
|
+
# api_secret: (String)
|
25
|
+
#
|
26
|
+
attr_reader :api_secret
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module OstKycSdkRuby
|
2
|
+
|
3
|
+
module Util
|
4
|
+
|
5
|
+
class CommonValidator
|
6
|
+
|
7
|
+
# Check for numeric-ness of an input
|
8
|
+
#
|
9
|
+
# Arguments:
|
10
|
+
# object: (Float)
|
11
|
+
#
|
12
|
+
# Returns:
|
13
|
+
# Boolean
|
14
|
+
#
|
15
|
+
def self.is_numeric?(object)
|
16
|
+
true if Float(object) rescue false
|
17
|
+
end
|
18
|
+
|
19
|
+
# Check for boolean-ness of an input
|
20
|
+
#
|
21
|
+
# Arguments:
|
22
|
+
# object: (Boolean)
|
23
|
+
#
|
24
|
+
# Returns:
|
25
|
+
# Boolean
|
26
|
+
#
|
27
|
+
def self.is_boolean?(object)
|
28
|
+
[
|
29
|
+
true,
|
30
|
+
false
|
31
|
+
].include?(object)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Is the given object Hash
|
35
|
+
#
|
36
|
+
# Arguments:
|
37
|
+
# object: (Hash)
|
38
|
+
#
|
39
|
+
# Returns:
|
40
|
+
# Boolean
|
41
|
+
#
|
42
|
+
def self.is_a_hash?(obj)
|
43
|
+
obj.is_a?(Hash) || obj.is_a?(ActionController::Parameters)
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -0,0 +1,251 @@
|
|
1
|
+
module OstKycSdkRuby
|
2
|
+
|
3
|
+
module Util
|
4
|
+
|
5
|
+
class HTTPHelper
|
6
|
+
|
7
|
+
# OstKycSdkRuby::Util::HTTPHelper
|
8
|
+
|
9
|
+
require "uri"
|
10
|
+
require "open-uri"
|
11
|
+
require "openssl"
|
12
|
+
require "net/http"
|
13
|
+
require "json"
|
14
|
+
|
15
|
+
# Initialize
|
16
|
+
#
|
17
|
+
# Arguments:
|
18
|
+
# api_base_url: (String)
|
19
|
+
# api_key: (String)
|
20
|
+
# api_secret: (String)
|
21
|
+
# api_spec: (Boolean)
|
22
|
+
#
|
23
|
+
def initialize(params)
|
24
|
+
@api_base_url = params[:api_base_url]
|
25
|
+
@api_key = params[:api_key]
|
26
|
+
@api_secret = params[:api_secret]
|
27
|
+
@api_spec = params[:api_spec]
|
28
|
+
@timeout = 10
|
29
|
+
if (params.key?(:config))
|
30
|
+
config = params[:config]
|
31
|
+
if (config.key?(:timeout))
|
32
|
+
@timeout = config[:timeout]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# Send POST requests
|
38
|
+
#
|
39
|
+
# Arguments:
|
40
|
+
# end_point: (String)
|
41
|
+
# request_params: (Hash)
|
42
|
+
#
|
43
|
+
# Returns:
|
44
|
+
# OstKycSdkRuby::Util::Result
|
45
|
+
#
|
46
|
+
def send_post_request(endpoint, request_params)
|
47
|
+
perform_and_handle_exceptions('u_hh_1', 'POST request failed') do
|
48
|
+
escaped_query_string = get_query_string(endpoint, request_params)
|
49
|
+
uri = URI(get_api_url(endpoint))
|
50
|
+
http = setup_request(uri)
|
51
|
+
if @api_spec
|
52
|
+
return OstKycSdkRuby::Util::Result.success({data: {request_uri: uri.to_s, request_type: 'POST', request_params: escaped_query_string}})
|
53
|
+
else
|
54
|
+
result = http.post(uri.path, escaped_query_string)
|
55
|
+
return format_response(result)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Send GET requests
|
61
|
+
#
|
62
|
+
# Arguments:
|
63
|
+
# end_point: (String)
|
64
|
+
# request_params: (Hash)
|
65
|
+
#
|
66
|
+
# Returns:
|
67
|
+
# OstKycSdkRuby::Util::Result
|
68
|
+
#
|
69
|
+
def send_get_request(endpoint, request_params)
|
70
|
+
perform_and_handle_exceptions('u_hh_2', 'GET request Failed') do
|
71
|
+
escaped_query_string = get_query_string(endpoint, request_params)
|
72
|
+
raw_url = get_api_url(endpoint) + "?#{escaped_query_string}"
|
73
|
+
uri = URI(raw_url)
|
74
|
+
if @api_spec
|
75
|
+
return OstKycSdkRuby::Util::Result.success({data: {request_uri: uri.to_s.split("?")[0], request_type: 'GET', request_params: escaped_query_string}})
|
76
|
+
else
|
77
|
+
result = {}
|
78
|
+
Timeout.timeout(@timeout) do
|
79
|
+
result = Net::HTTP.get_response(uri)
|
80
|
+
end
|
81
|
+
return format_response(result)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def get_signature_for_test(endpoint, request_params)
|
87
|
+
escaped_query_string = get_escaped_query_string(request_params)
|
88
|
+
string_to_sign = "#{endpoint}?#{escaped_query_string}"
|
89
|
+
generate_signature(string_to_sign)
|
90
|
+
end
|
91
|
+
|
92
|
+
private
|
93
|
+
|
94
|
+
def setup_request(uri)
|
95
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
96
|
+
http.read_timeout = @timeout
|
97
|
+
http.open_timeout = @timeout
|
98
|
+
if uri.scheme == "https"
|
99
|
+
http.use_ssl = true
|
100
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
101
|
+
end
|
102
|
+
http
|
103
|
+
end
|
104
|
+
|
105
|
+
def get_query_string(endpoint, request_params)
|
106
|
+
request_timestamp = Time.now.to_i
|
107
|
+
request_params = request_params.merge("request_timestamp" => request_timestamp, "api_key" => @api_key)
|
108
|
+
escaped_query_string = get_escaped_query_string(request_params)
|
109
|
+
string_to_sign = endpoint + "?" + escaped_query_string
|
110
|
+
signature = generate_signature(string_to_sign)
|
111
|
+
"#{escaped_query_string}&signature=#{escape(signature)}"
|
112
|
+
end
|
113
|
+
|
114
|
+
def get_escaped_query_string(request_params)
|
115
|
+
sorted_request_params = sort_param(request_params)
|
116
|
+
build_nested_query(sorted_request_params)
|
117
|
+
end
|
118
|
+
|
119
|
+
def generate_signature(string_to_sign)
|
120
|
+
digest = OpenSSL::Digest.new('sha256')
|
121
|
+
OpenSSL::HMAC.hexdigest(digest, @api_secret, string_to_sign)
|
122
|
+
end
|
123
|
+
|
124
|
+
def get_api_url(endpoint)
|
125
|
+
@api_base_url + endpoint
|
126
|
+
end
|
127
|
+
|
128
|
+
def build_nested_query(value, prefix = nil)
|
129
|
+
case value
|
130
|
+
when Array
|
131
|
+
value.map {|v|
|
132
|
+
build_nested_query(v, "#{prefix}[]")
|
133
|
+
}.join("&")
|
134
|
+
when Hash
|
135
|
+
value.map {|k, v|
|
136
|
+
build_nested_query(v, prefix ? "#{prefix}[#{k}]" : k)
|
137
|
+
}.reject(&:empty?).join('&')
|
138
|
+
# when nil
|
139
|
+
# "#{escape(prefix)}="
|
140
|
+
else
|
141
|
+
raise ArgumentError, "value must be a Hash" if prefix.nil?
|
142
|
+
"#{escape(prefix)}=#{escape(value)}"
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
def escape(s)
|
147
|
+
s = URI.encode_www_form_component(s)
|
148
|
+
URI.escape(s, "*")
|
149
|
+
end
|
150
|
+
|
151
|
+
# Method which is called in service perform and handle exceptions
|
152
|
+
#
|
153
|
+
def perform_and_handle_exceptions(err_code = 'swt', err_message = 'Something Went Wrong', &block)
|
154
|
+
begin
|
155
|
+
yield if block_given?
|
156
|
+
rescue StandardError => se
|
157
|
+
OstKycSdkRuby::Util::Result.exception(se, {error: err_code, error_message: err_message})
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
def sort_param(params)
|
162
|
+
|
163
|
+
if params.is_a?(Hash)
|
164
|
+
params = JSON.parse(params.to_json)
|
165
|
+
data = {}
|
166
|
+
params.sort.each do |ele|
|
167
|
+
key = ele[0]
|
168
|
+
val = ele[1]
|
169
|
+
data[key] = sort_param(val)
|
170
|
+
end
|
171
|
+
|
172
|
+
elsif params.is_a?(Array)
|
173
|
+
params = JSON.parse(params.to_json)
|
174
|
+
data = []
|
175
|
+
params.each do |ele|
|
176
|
+
data << sort_param(ele)
|
177
|
+
end
|
178
|
+
else
|
179
|
+
data = params.to_s
|
180
|
+
end
|
181
|
+
|
182
|
+
return data
|
183
|
+
end
|
184
|
+
|
185
|
+
def format_response(response)
|
186
|
+
json_raw_response = JSON.parse(response.body)
|
187
|
+
# If internal response
|
188
|
+
if json_raw_response.has_key?('success') || json_raw_response.has_key?('err')
|
189
|
+
format_internal_response(response)
|
190
|
+
else
|
191
|
+
format_external_response(response.code)
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
195
|
+
def format_internal_response(response)
|
196
|
+
json_raw_response = JSON.parse(response.body)
|
197
|
+
if json_raw_response['success']
|
198
|
+
OstKycSdkRuby::Util::Result.success(
|
199
|
+
{
|
200
|
+
data: json_raw_response['data'],
|
201
|
+
http_code: response.code
|
202
|
+
}
|
203
|
+
)
|
204
|
+
else
|
205
|
+
err_data = json_raw_response['err']
|
206
|
+
OstKycSdkRuby::Util::Result.error(
|
207
|
+
{
|
208
|
+
error: err_data['code'],
|
209
|
+
internal_id: err_data['internal_id'],
|
210
|
+
error_message: err_data['msg'],
|
211
|
+
error_data: err_data['error_data'],
|
212
|
+
http_code: response.code
|
213
|
+
}
|
214
|
+
)
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
def format_external_response(response_code)
|
219
|
+
case response_code.to_i
|
220
|
+
when 502
|
221
|
+
code = 'BAD_GATEWAY'
|
222
|
+
internal_id = 'SDK(BAD_GATEWAY)'
|
223
|
+
message = 'Something went wrong.'
|
224
|
+
when 503
|
225
|
+
code = 'SERVICE_UNAVAILABLE'
|
226
|
+
internal_id = 'SDK(SERVICE_UNAVAILABLE)'
|
227
|
+
message = 'API under maintenance.'
|
228
|
+
when 504
|
229
|
+
code = 'GATEWAY_TIMEOUT'
|
230
|
+
internal_id = 'SDK(GATEWAY_TIMEOUT)'
|
231
|
+
message = 'Request timed out.'
|
232
|
+
else
|
233
|
+
code = 'SOMETHING_WENT_WRONG'
|
234
|
+
internal_id = 'SDK(SOMETHING_WENT_WRONG)'
|
235
|
+
message = 'Something went wrong.'
|
236
|
+
end
|
237
|
+
OstKycSdkRuby::Util::Result.error(
|
238
|
+
{
|
239
|
+
error: code,
|
240
|
+
internal_id: internal_id,
|
241
|
+
error_message: message,
|
242
|
+
http_code: response_code
|
243
|
+
}
|
244
|
+
)
|
245
|
+
end
|
246
|
+
|
247
|
+
end
|
248
|
+
|
249
|
+
end
|
250
|
+
|
251
|
+
end
|
@@ -0,0 +1,233 @@
|
|
1
|
+
module OstKycSdkRuby
|
2
|
+
|
3
|
+
module Util
|
4
|
+
|
5
|
+
class Result
|
6
|
+
|
7
|
+
# OstKycSdkRuby::Util::Result
|
8
|
+
|
9
|
+
attr_accessor :error,
|
10
|
+
:error_message,
|
11
|
+
:internal_id,
|
12
|
+
:error_data,
|
13
|
+
:message,
|
14
|
+
:data,
|
15
|
+
:exception,
|
16
|
+
:http_code
|
17
|
+
|
18
|
+
# Initialize
|
19
|
+
#
|
20
|
+
# Arguments:
|
21
|
+
# params: (Hash)
|
22
|
+
def initialize(params = {})
|
23
|
+
set_error(params)
|
24
|
+
set_message(params[:message])
|
25
|
+
set_http_code(params[:http_code])
|
26
|
+
@data = params[:data] || {}
|
27
|
+
end
|
28
|
+
|
29
|
+
# Set Error
|
30
|
+
#
|
31
|
+
# Arguments:
|
32
|
+
# params: (Hash)
|
33
|
+
def set_error(params)
|
34
|
+
@error = params[:error] if params.key?(:error)
|
35
|
+
@error_message = params[:error_message] if params.key?(:error_message)
|
36
|
+
@error_data = params[:error_data] if params.key?(:error_data)
|
37
|
+
@internal_id = params[:internal_id] if params.key?(:internal_id)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Set Message
|
41
|
+
#
|
42
|
+
# Arguments:
|
43
|
+
# msg: (String)
|
44
|
+
def set_message(msg)
|
45
|
+
@message = msg
|
46
|
+
end
|
47
|
+
|
48
|
+
# Set HTTP Code
|
49
|
+
#
|
50
|
+
# Arguments:
|
51
|
+
# msg: (String)
|
52
|
+
def set_http_code(h_c)
|
53
|
+
if h_c.nil?
|
54
|
+
@http_code = 200
|
55
|
+
else
|
56
|
+
@http_code = h_c.to_i
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Set Exception
|
61
|
+
#
|
62
|
+
# Arguments:
|
63
|
+
# e: (Exception)
|
64
|
+
def set_exception(e)
|
65
|
+
@exception = e
|
66
|
+
end
|
67
|
+
|
68
|
+
# is valid?
|
69
|
+
#
|
70
|
+
# @return [Boolean] returns True / False
|
71
|
+
#
|
72
|
+
def valid?
|
73
|
+
!invalid?
|
74
|
+
end
|
75
|
+
|
76
|
+
# is invalid?
|
77
|
+
#
|
78
|
+
# @return [Boolean] returns True / False
|
79
|
+
#
|
80
|
+
def invalid?
|
81
|
+
errors_present?
|
82
|
+
end
|
83
|
+
|
84
|
+
# Define error / failed methods
|
85
|
+
#
|
86
|
+
[:error?, :errors?, :failed?].each do |name|
|
87
|
+
define_method(name) { invalid? }
|
88
|
+
end
|
89
|
+
|
90
|
+
# Define success method
|
91
|
+
#
|
92
|
+
[:success?].each do |name|
|
93
|
+
define_method(name) { valid? }
|
94
|
+
end
|
95
|
+
|
96
|
+
# are errors present?
|
97
|
+
#
|
98
|
+
# @return [Boolean] returns True / False
|
99
|
+
#
|
100
|
+
def errors_present?
|
101
|
+
@internal_id ||
|
102
|
+
@error ||
|
103
|
+
@error_message ||
|
104
|
+
@error_data ||
|
105
|
+
@exception
|
106
|
+
end
|
107
|
+
|
108
|
+
# Exception message
|
109
|
+
#
|
110
|
+
# Returns:
|
111
|
+
# exception_message: (String)
|
112
|
+
#
|
113
|
+
def exception_message
|
114
|
+
@e_m ||= @exception.nil? ? '' : @exception.message
|
115
|
+
end
|
116
|
+
|
117
|
+
# Get instance variables Hash style from object
|
118
|
+
#
|
119
|
+
def [](key)
|
120
|
+
instance_variable_get("@#{key}")
|
121
|
+
end
|
122
|
+
|
123
|
+
# Error
|
124
|
+
#
|
125
|
+
# Returns:
|
126
|
+
# obj: (OstKycSdkRuby::Util::Result)
|
127
|
+
#
|
128
|
+
def self.error(params)
|
129
|
+
new(params)
|
130
|
+
end
|
131
|
+
|
132
|
+
# Success
|
133
|
+
#
|
134
|
+
# Returns:
|
135
|
+
# obj: (OstKycSdkRuby::Util::Result)
|
136
|
+
#
|
137
|
+
def self.success(params)
|
138
|
+
new(params.merge!(no_error))
|
139
|
+
end
|
140
|
+
|
141
|
+
# Exception
|
142
|
+
#
|
143
|
+
# Returns:
|
144
|
+
# obj: (OstKycSdkRuby::Util::Result)
|
145
|
+
#
|
146
|
+
def self.exception(e, params = {})
|
147
|
+
obj = new(params)
|
148
|
+
obj.set_exception(e)
|
149
|
+
return obj
|
150
|
+
end
|
151
|
+
|
152
|
+
# No Error
|
153
|
+
#
|
154
|
+
# Returns:
|
155
|
+
# obj: (Hash)
|
156
|
+
#
|
157
|
+
def self.no_error
|
158
|
+
@n_err ||= {
|
159
|
+
error: nil,
|
160
|
+
error_message: nil,
|
161
|
+
error_data: nil,
|
162
|
+
internal_id: nil
|
163
|
+
}
|
164
|
+
end
|
165
|
+
|
166
|
+
# Fields
|
167
|
+
#
|
168
|
+
# Returns:
|
169
|
+
# obj: (Array)
|
170
|
+
#
|
171
|
+
def self.fields
|
172
|
+
error_fields + [:data, :message]
|
173
|
+
end
|
174
|
+
|
175
|
+
# Error Fields
|
176
|
+
#
|
177
|
+
# Returns:
|
178
|
+
# obj: (Array)
|
179
|
+
#
|
180
|
+
def self.error_fields
|
181
|
+
[
|
182
|
+
:error,
|
183
|
+
:error_message,
|
184
|
+
:error_data,
|
185
|
+
:internal_id
|
186
|
+
]
|
187
|
+
end
|
188
|
+
|
189
|
+
# Create an Hash out of all instance vars
|
190
|
+
#
|
191
|
+
# Returns:
|
192
|
+
# obj: (Hash)
|
193
|
+
#
|
194
|
+
def to_hash
|
195
|
+
self.class.fields.each_with_object({}) do |key, hash|
|
196
|
+
val = send(key)
|
197
|
+
hash[key] = val if !val.nil?
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
# To JSON
|
202
|
+
#
|
203
|
+
# Returns:
|
204
|
+
# obj: (Hash)
|
205
|
+
#
|
206
|
+
def to_json
|
207
|
+
|
208
|
+
hash = self.to_hash
|
209
|
+
|
210
|
+
if (hash[:error] == nil)
|
211
|
+
h = {
|
212
|
+
success: true
|
213
|
+
}.merge(hash)
|
214
|
+
h
|
215
|
+
else
|
216
|
+
{
|
217
|
+
success: false,
|
218
|
+
err: {
|
219
|
+
internal_id: hash[:internal_id] || 'SDK',
|
220
|
+
code: hash[:error],
|
221
|
+
msg: hash[:error_message],
|
222
|
+
error_data: hash[:error_data] || []
|
223
|
+
}
|
224
|
+
}
|
225
|
+
end
|
226
|
+
|
227
|
+
end
|
228
|
+
|
229
|
+
end
|
230
|
+
|
231
|
+
end
|
232
|
+
|
233
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
module OstKycSdkRuby
|
2
|
+
|
3
|
+
module Util
|
4
|
+
|
5
|
+
module ServicesHelper
|
6
|
+
|
7
|
+
# Wrapper Method which could be used to execute business logic
|
8
|
+
# Error handling code wraps execution of business logic
|
9
|
+
#
|
10
|
+
# Arguments:
|
11
|
+
# err_code: (String)
|
12
|
+
# err_message: (String)
|
13
|
+
# block: (Proc)
|
14
|
+
#
|
15
|
+
# Returns:
|
16
|
+
# OstKycSdkRuby::Util::Result
|
17
|
+
#
|
18
|
+
def perform_and_handle_exceptions(err_code = 'swt', err_message = 'Something Went Wrong', &block)
|
19
|
+
begin
|
20
|
+
yield if block_given?
|
21
|
+
rescue StandardError => se
|
22
|
+
OstKycSdkRuby::Util::Result.exception(se, {error: err_code, error_message: err_message, data: @params} )
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# Success
|
27
|
+
#
|
28
|
+
# Returns:
|
29
|
+
# OstKycSdkRuby::Util::Result
|
30
|
+
#
|
31
|
+
def success
|
32
|
+
success_with_data({})
|
33
|
+
end
|
34
|
+
|
35
|
+
# Success with data
|
36
|
+
#
|
37
|
+
# Arguments:
|
38
|
+
# data: (Hash)
|
39
|
+
#
|
40
|
+
# Returns:
|
41
|
+
# OstKycSdkRuby::Util::Result
|
42
|
+
#
|
43
|
+
def success_with_data(data)
|
44
|
+
|
45
|
+
# Allow only Hash data to pass ahead
|
46
|
+
data = {} unless Util::CommonValidator.is_a_hash?(data)
|
47
|
+
|
48
|
+
OstKycSdkRuby::Util::Result.success({data: data})
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
# Error with data
|
53
|
+
#
|
54
|
+
# Arguments:
|
55
|
+
# code: (String)
|
56
|
+
# msg: (String)
|
57
|
+
# data: (Hash)
|
58
|
+
#
|
59
|
+
# Returns:
|
60
|
+
# OstKycSdkRuby::Util::Result
|
61
|
+
#
|
62
|
+
def error_with_data(code, msg, data = {})
|
63
|
+
|
64
|
+
OstKycSdkRuby::Util::Result.error(
|
65
|
+
{
|
66
|
+
error: code,
|
67
|
+
error_message: msg,
|
68
|
+
data: data
|
69
|
+
}
|
70
|
+
)
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
#
|
75
|
+
# Exception with data and without action
|
76
|
+
#
|
77
|
+
# Arguments:
|
78
|
+
# e: (Exception)
|
79
|
+
# code: (String)
|
80
|
+
# msg: (String)
|
81
|
+
# data: (Hash optional)
|
82
|
+
#
|
83
|
+
# Returns:
|
84
|
+
# OstKycSdkRuby::Util::Result
|
85
|
+
#
|
86
|
+
def exception_with_data(e, code, msg, data = {})
|
87
|
+
|
88
|
+
OstKycSdkRuby::Util::Result.exception(
|
89
|
+
e, {
|
90
|
+
error: code,
|
91
|
+
error_message: msg,
|
92
|
+
data: data
|
93
|
+
}
|
94
|
+
)
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ost-kyc-sdk-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.beta.
|
4
|
+
version: 2.0.0.beta.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OST
|
@@ -44,7 +44,29 @@ email: []
|
|
44
44
|
executables: []
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
|
-
files:
|
47
|
+
files:
|
48
|
+
- lib/config.rb
|
49
|
+
- lib/ost-kyc-sdk-ruby.rb
|
50
|
+
- lib/ost-kyc-sdk-ruby/saas.rb
|
51
|
+
- lib/ost-kyc-sdk-ruby/saas/base.rb
|
52
|
+
- lib/ost-kyc-sdk-ruby/saas/manifest.rb
|
53
|
+
- lib/ost-kyc-sdk-ruby/saas/services.rb
|
54
|
+
- lib/ost-kyc-sdk-ruby/saas/users.rb
|
55
|
+
- lib/ost-kyc-sdk-ruby/saas/users_kyc.rb
|
56
|
+
- lib/ost-kyc-sdk-ruby/saas/users_kyc_detail.rb
|
57
|
+
- lib/ost-kyc-sdk-ruby/saas/validators.rb
|
58
|
+
- lib/ost-kyc-sdk-ruby/test/signature_generation_test.rb
|
59
|
+
- lib/ost-kyc-sdk-ruby/test/user_kyc_detail_test.rb
|
60
|
+
- lib/ost-kyc-sdk-ruby/test/user_kyc_test.rb
|
61
|
+
- lib/ost-kyc-sdk-ruby/test/user_test.rb
|
62
|
+
- lib/ost-kyc-sdk-ruby/test/validators_test.rb
|
63
|
+
- lib/ost-kyc-sdk-ruby/util.rb
|
64
|
+
- lib/ost-kyc-sdk-ruby/util/api_credentials.rb
|
65
|
+
- lib/ost-kyc-sdk-ruby/util/common_validator.rb
|
66
|
+
- lib/ost-kyc-sdk-ruby/util/http_helper.rb
|
67
|
+
- lib/ost-kyc-sdk-ruby/util/result.rb
|
68
|
+
- lib/ost-kyc-sdk-ruby/util/services_helper.rb
|
69
|
+
- lib/ost-kyc-sdk-ruby/version.rb
|
48
70
|
homepage: https://kyc.ost.com
|
49
71
|
licenses:
|
50
72
|
- MIT
|