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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/lib/config.rb +18 -0
  3. data/lib/ost-sdk-ruby/saas.rb +12 -17
  4. data/lib/ost-sdk-ruby/saas/balance.rb +35 -0
  5. data/lib/ost-sdk-ruby/saas/base.rb +94 -12
  6. data/lib/ost-sdk-ruby/saas/{v1.1/ledger.rb → chains.rb} +6 -9
  7. data/lib/ost-sdk-ruby/saas/{v1.1/balances.rb → device_managers.rb} +7 -9
  8. data/lib/ost-sdk-ruby/saas/devices.rb +55 -0
  9. data/lib/ost-sdk-ruby/saas/manifest.rb +40 -0
  10. data/lib/ost-sdk-ruby/saas/price_points.rb +35 -0
  11. data/lib/ost-sdk-ruby/saas/recovery_owners.rb +35 -0
  12. data/lib/ost-sdk-ruby/saas/{v1/token.rb → rules.rb} +6 -9
  13. data/lib/ost-sdk-ruby/saas/services.rb +3 -17
  14. data/lib/ost-sdk-ruby/saas/sessions.rb +44 -0
  15. data/lib/ost-sdk-ruby/saas/tokens.rb +35 -0
  16. data/lib/ost-sdk-ruby/saas/transactions.rb +53 -0
  17. data/lib/ost-sdk-ruby/saas/users.rb +52 -0
  18. data/lib/ost-sdk-ruby/test/balance_test.rb +18 -0
  19. data/lib/ost-sdk-ruby/test/chains_test.rb +18 -0
  20. data/lib/ost-sdk-ruby/test/device_managers_test.rb +18 -0
  21. data/lib/ost-sdk-ruby/test/devices_test.rb +41 -0
  22. data/lib/ost-sdk-ruby/test/price_points_test.rb +18 -0
  23. data/lib/ost-sdk-ruby/test/recovery_owners_test.rb +21 -0
  24. data/lib/ost-sdk-ruby/test/rules_test.rb +18 -0
  25. data/lib/ost-sdk-ruby/test/sessions_test.rb +28 -0
  26. data/lib/ost-sdk-ruby/test/signature_generation_test.rb +33 -0
  27. data/lib/ost-sdk-ruby/test/tokens_test.rb +18 -0
  28. data/lib/ost-sdk-ruby/test/transactions_test.rb +43 -0
  29. data/lib/ost-sdk-ruby/test/users_test.rb +32 -0
  30. data/lib/ost-sdk-ruby/util.rb +1 -1
  31. data/lib/ost-sdk-ruby/util/common_validator.rb +14 -0
  32. data/lib/ost-sdk-ruby/util/custom_error_response.rb +56 -0
  33. data/lib/ost-sdk-ruby/util/http_helper.rb +105 -97
  34. data/lib/ost-sdk-ruby/util/services_helper.rb +3 -75
  35. data/lib/ost-sdk-ruby/version.rb +1 -1
  36. metadata +42 -32
  37. data/Rakefile +0 -8
  38. data/lib/ost-sdk-ruby/saas/v0/services.rb +0 -32
  39. data/lib/ost-sdk-ruby/saas/v0/transaction_kind.rb +0 -85
  40. data/lib/ost-sdk-ruby/saas/v0/users.rb +0 -73
  41. data/lib/ost-sdk-ruby/saas/v1.1/services.rb +0 -41
  42. data/lib/ost-sdk-ruby/saas/v1/actions.rb +0 -64
  43. data/lib/ost-sdk-ruby/saas/v1/airdrops.rb +0 -55
  44. data/lib/ost-sdk-ruby/saas/v1/services.rb +0 -36
  45. data/lib/ost-sdk-ruby/saas/v1/transactions.rb +0 -55
  46. data/lib/ost-sdk-ruby/saas/v1/transfers.rb +0 -55
  47. data/lib/ost-sdk-ruby/saas/v1/users.rb +0 -64
  48. data/lib/ost-sdk-ruby/util/result.rb +0 -240
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c7a0cc043310846bc2c7640bc28d23a30036fb67
4
- data.tar.gz: dd72349c8d308080ea34ea4727d7d92e8080d6d5
3
+ metadata.gz: 0e1ebbb4217e10f8fd93f4bfc34a297c3dea6aa5
4
+ data.tar.gz: c6308f534ae6a646e2b2c81168bcee121b47db30
5
5
  SHA512:
6
- metadata.gz: 703768eef5e6641b6cfdb9eb9e47ed91e59d4d84718bc767f18c13567507da832a09089cad8f9e042fe536dc74c1c68720ff90536f619fde54b2b2a7a478559d
7
- data.tar.gz: 8102fbffdba46e89fcbd6369392d52d15a40af7b7cf303ddd74d621aca9239f7def7410dabb695c59d109ffd650bc305e198e50b2d8b94c8403772f444092468
6
+ metadata.gz: d89dbac80afb427bbc7ff38a4d1ac2ae22692a4410fb2475cea04eabd61d95cf4f3c4939b279ab65e05483cf2433a308fd6a3b3c9e44cdbfb86e38a53f45088d
7
+ data.tar.gz: 3c5ee6e8896e85b7418d0fd05d0065eb70fcf1b9fbe1091be9af427846552567b5a8f23a43dcd3866c82799076d51b276d7b957f48c13cef4ae7503ed80faea4
@@ -0,0 +1,18 @@
1
+ class Config
2
+
3
+ API_BASE_URL = ENV['OST_KIT_API_ENDPOINT']
4
+ API_KEY = ENV['OST_KIT_API_KEY']
5
+ API_SECRET = ENV['OST_KIT_API_SECRET']
6
+ OST_SDK = OSTSdk::Saas::Services.new({api_key: API_KEY, api_secret: API_SECRET,
7
+ api_base_url: API_BASE_URL, config: {timeout: 10}, api_spec: false})
8
+
9
+ OST_KIT_COMPANY_USER_ID = ENV['OST_KIT_COMPANY_USER_ID']
10
+ OST_KIT_AUX_CHAIN_ID = ENV['OST_KIT_AUX_CHAIN_ID']
11
+ OST_KIT_TRANSACTION_ID = ENV['OST_KIT_TRANSACTION_ID']
12
+ OST_KIT_USER_ID = ENV['OST_KIT_USER_ID']
13
+ OST_KIT_USER_DEVICE_ADDRESS = ENV['OST_KIT_USER_DEVICE_ADDRESS']
14
+ OST_KIT_SESSION_ADDRESS = ENV['OST_KIT_SESSION_ADDRESS']
15
+ OST_KIT_RULE_ADDRESS = ENV['OST_KIT_RULE_ADDRESS']
16
+ OST_KIT_USER2_TOKEN_HOLDER_ADDRESS = ENV['OST_KIT_USER2_TOKEN_HOLDER_ADDRESS']
17
+ OST_KIT_RECOVERY_OWNER_ADDRESS = ENV['OST_KIT_RECOVERY_OWNER_ADDRESS']
18
+ end
@@ -1,22 +1,17 @@
1
1
  require_relative 'saas/services'
2
-
3
2
  require_relative 'saas/base'
4
-
5
- require_relative 'saas/v0/services'
6
- require_relative 'saas/v0/transaction_kind'
7
- require_relative 'saas/v0/users'
8
-
9
- require_relative 'saas/v1/services'
10
- require_relative 'saas/v1/users'
11
- require_relative 'saas/v1/token'
12
- require_relative 'saas/v1/actions'
13
- require_relative 'saas/v1/airdrops'
14
- require_relative 'saas/v1/transfers'
15
- require_relative 'saas/v1/transactions'
16
-
17
- require_relative 'saas/v1.1/services'
18
- require_relative 'saas/v1.1/balances'
19
- require_relative 'saas/v1.1/ledger'
3
+ require_relative 'saas/balance'
4
+ require_relative 'saas/chains'
5
+ require_relative 'saas/device_managers'
6
+ require_relative 'saas/devices'
7
+ require_relative 'saas/manifest'
8
+ require_relative 'saas/price_points'
9
+ require_relative 'saas/recovery_owners'
10
+ require_relative 'saas/rules'
11
+ require_relative 'saas/sessions'
12
+ require_relative 'saas/tokens'
13
+ require_relative 'saas/transactions'
14
+ require_relative 'saas/users'
20
15
 
21
16
  module OSTSdk
22
17
 
@@ -0,0 +1,35 @@
1
+ module OSTSdk
2
+
3
+ module Saas
4
+
5
+ class Balance < OSTSdk::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
+ # config: (Hash)
15
+ #
16
+ def initialize(params)
17
+ super
18
+ @url_prefix = '/users'
19
+ @url_suffix = '/balance'
20
+ end
21
+
22
+ # Get User's Balance
23
+ #
24
+ # Returns:
25
+ # response: (Hash)
26
+ #
27
+ def get(params = {})
28
+ http_helper.send_get_request("#{@url_prefix}/#{get_user_id!(params)}#{@url_suffix}", params)
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+
35
+ end
@@ -36,19 +36,103 @@ module OSTSdk
36
36
  # params: (Hash)
37
37
  #
38
38
  # Returns:
39
- # id: (Integer)
39
+ # id: (String)
40
40
  #
41
41
  def get_id!(params)
42
- if params.has_key?(:id)
43
- id = params[:id]
44
- params.delete(:id)
45
- elsif params.has_key?('id')
46
- id = params['id']
47
- params.delete('id')
48
- else
49
- fail "id missing in request params"
42
+ get_value_for_key!(params, "id")
43
+ end
44
+
45
+ # Get user_id key from params hash and delete it
46
+ #
47
+ # Arguments:
48
+ # params: (Hash)
49
+ #
50
+ # Returns:
51
+ # user_id: (String)
52
+ #
53
+ def get_user_id!(params)
54
+ get_value_for_key!(params, "user_id")
55
+ end
56
+
57
+ # Get chain_id key from params hash and delete it
58
+ #
59
+ # Arguments:
60
+ # params: (Hash)
61
+ #
62
+ # Returns:
63
+ # chain_id: (String)
64
+ #
65
+ def get_chain_id!(params)
66
+ get_value_for_key!(params, "chain_id")
67
+ end
68
+
69
+ # Get device_address key from params hash and delete it
70
+ #
71
+ # Arguments:
72
+ # params: (Hash)
73
+ #
74
+ # Returns:
75
+ # device_address: (String)
76
+ #
77
+ def get_device_address!(params)
78
+ get_value_for_key!(params, "device_address")
79
+ end
80
+
81
+ # Get session_address key from params hash and delete it
82
+ #
83
+ # Arguments:
84
+ # params: (Hash)
85
+ #
86
+ # Returns:
87
+ # session_address: (String)
88
+ #
89
+ def get_session_address!(params)
90
+ get_value_for_key!(params, "session_address")
91
+ end
92
+
93
+
94
+ # Get transaction_id key from params hash and delete it
95
+ #
96
+ # Arguments:
97
+ # params: (Hash)
98
+ #
99
+ # Returns:
100
+ # transaction_id: (String)
101
+ #
102
+ def get_transaction_id!(params)
103
+ get_value_for_key!(params, "transaction_id")
104
+ end
105
+
106
+ # Get user_id key from params hash and delete it
107
+ #
108
+ # Arguments:
109
+ # params: (Hash)
110
+ #
111
+ # Returns:
112
+ # user_id: (String)
113
+ #
114
+ def get_recovery_owner_address!(params)
115
+ get_value_for_key!(params, "recovery_owner_address")
116
+ end
117
+
118
+ # Get value for specific key
119
+ #
120
+ # Arguments:
121
+ # params: (Hash)
122
+ #
123
+ # Returns:
124
+ # key: (String)
125
+ #
126
+ def get_value_for_key!(params, key)
127
+ if params.has_key?(key.to_sym)
128
+ value = params.delete(key.to_sym)
129
+ elsif params.has_key?(key.to_s)
130
+ value = params.delete(key.to_s)
50
131
  end
51
- id
132
+
133
+ raise "#{key.to_s} missing in request params" if value.nil?
134
+ raise "#{key.to_s} invalid in request params" if !OSTSdk::Util::CommonValidator.is_valid_uuid_format?(value.to_s)
135
+ value
52
136
  end
53
137
 
54
138
  # Sanitize API Base URL
@@ -60,9 +144,7 @@ module OSTSdk
60
144
  # api_base_url: (String)
61
145
  #
62
146
  def sanitize_api_base_url(api_base_url)
63
-
64
147
  api_base_url = api_base_url.gsub(/\/$/, '') # remove trailing slash
65
-
66
148
  return api_base_url
67
149
 
68
150
  end
@@ -2,9 +2,7 @@ module OSTSdk
2
2
 
3
3
  module Saas
4
4
 
5
- module V1Dot1
6
-
7
- class Ledger < OSTSdk::Saas::Base
5
+ class Chains < OSTSdk::Saas::Base
8
6
 
9
7
  # Initialize
10
8
  #
@@ -13,25 +11,24 @@ module OSTSdk
13
11
  # api_key: (String)
14
12
  # api_secret: (String)
15
13
  # api_spec: (Boolean)
14
+ # config: (Hash)
16
15
  #
17
16
  def initialize(params)
18
17
  super
19
- @url_prefix = '/ledger'
18
+ @url_prefix = '/chains'
20
19
  end
21
20
 
22
- # Get transactions ledger of user
21
+ # Get chain details
23
22
  #
24
23
  # Returns:
25
- # response: (OSTSdk::Util::Result)
24
+ # response: (Hash)
26
25
  #
27
26
  def get(params = {})
28
- http_helper.send_get_request("#{@url_prefix}/#{get_id!(params)}", params)
27
+ http_helper.send_get_request("#{@url_prefix}/#{get_chain_id!(params)}", params)
29
28
  end
30
29
 
31
30
  end
32
31
 
33
32
  end
34
33
 
35
- end
36
-
37
34
  end
@@ -2,9 +2,7 @@ module OSTSdk
2
2
 
3
3
  module Saas
4
4
 
5
- module V1Dot1
6
-
7
- class Balances < OSTSdk::Saas::Base
5
+ class DeviceManagers < OSTSdk::Saas::Base
8
6
 
9
7
  # Initialize
10
8
  #
@@ -13,25 +11,25 @@ module OSTSdk
13
11
  # api_key: (String)
14
12
  # api_secret: (String)
15
13
  # api_spec: (Boolean)
14
+ # config: (Hash)
16
15
  #
17
16
  def initialize(params)
18
17
  super
19
- @url_prefix = '/balances'
18
+ @url_prefix = '/users'
19
+ @url_suffix = '/device-managers'
20
20
  end
21
21
 
22
- # Get balances details of user
22
+ # Get Device Manager Detail
23
23
  #
24
24
  # Returns:
25
- # response: (OSTSdk::Util::Result)
25
+ # response: (Hash)
26
26
  #
27
27
  def get(params = {})
28
- http_helper.send_get_request("#{@url_prefix}/#{get_id!(params)}", params)
28
+ http_helper.send_get_request("#{@url_prefix}/#{get_user_id!(params)}#{@url_suffix}", params)
29
29
  end
30
30
 
31
31
  end
32
32
 
33
33
  end
34
34
 
35
- end
36
-
37
35
  end
@@ -0,0 +1,55 @@
1
+ module OSTSdk
2
+
3
+ module Saas
4
+
5
+ class Devices < OSTSdk::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
+ # config: (Hash)
15
+ #
16
+ def initialize(params)
17
+ super
18
+ @url_prefix = '/users'
19
+ @url_suffix = '/devices'
20
+ end
21
+
22
+ # Associate a Device with a User
23
+ #
24
+ # Returns:
25
+ # response: (Hash)
26
+ #
27
+ def create(params = {})
28
+ http_helper.send_post_request("#{@url_prefix}/#{get_user_id!(params)}#{@url_suffix}", params)
29
+ end
30
+
31
+ # List devices of a user
32
+ #
33
+ # Returns:
34
+ # response: (Hash)
35
+ #
36
+ def get_list(params = {})
37
+ http_helper.send_get_request("#{@url_prefix}/#{get_user_id!(params)}#{@url_suffix}", params)
38
+ end
39
+
40
+ # Get device of a user
41
+ #
42
+ # Returns:
43
+ # response: (Hash)
44
+ #
45
+ def get(params = {})
46
+ http_helper.send_get_request("#{@url_prefix}/#{get_user_id!(params)}#{@url_suffix}/#{get_device_address!(params)}",
47
+ params)
48
+ end
49
+
50
+
51
+ end
52
+
53
+ end
54
+
55
+ end
@@ -0,0 +1,40 @@
1
+ module OSTSdk
2
+
3
+ module Saas
4
+
5
+ class Manifest
6
+
7
+ attr_reader :balance, :chains, :device_managers, :devices, :price_points, :recovery_owners, :rules,
8
+ :sessions, :tokens, :transactions, :users
9
+
10
+ # Initialize
11
+ #
12
+ # Arguments:
13
+ # api_base_url: (String)
14
+ # api_key: (String)
15
+ # api_secret: (String)
16
+ # api_spec: (Boolean)
17
+ # config: (Hash)
18
+ #
19
+ def initialize(params)
20
+
21
+ @balance = OSTSdk::Saas::Balance.new(params)
22
+ @chains = OSTSdk::Saas::Chains.new(params)
23
+ @device_managers = OSTSdk::Saas::DeviceManagers.new(params)
24
+ @devices = OSTSdk::Saas::Devices.new(params)
25
+ @price_points = OSTSdk::Saas::PricePoints.new(params)
26
+ @recovery_owners = OSTSdk::Saas::RecoveryOwners.new(params)
27
+
28
+ @rules = OSTSdk::Saas::Rules.new(params)
29
+ @sessions = OSTSdk::Saas::Sessions.new(params)
30
+ @tokens = OSTSdk::Saas::Tokens.new(params)
31
+ @transactions = OSTSdk::Saas::Transactions.new(params)
32
+ @users = OSTSdk::Saas::Users.new(params)
33
+
34
+ end
35
+
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -0,0 +1,35 @@
1
+ module OSTSdk
2
+
3
+ module Saas
4
+
5
+ class PricePoints < OSTSdk::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
+ # config: (Hash)
15
+ #
16
+ def initialize(params)
17
+ super
18
+ @url_prefix = '/chains'
19
+ @url_suffix = '/price-points'
20
+ end
21
+
22
+ # Get Chain Price Points
23
+ #
24
+ # Returns:
25
+ # response: (Hash)
26
+ #
27
+ def get(params = {})
28
+ http_helper.send_get_request("#{@url_prefix}/#{get_chain_id!(params)}#{@url_suffix}", params)
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+
35
+ end
@@ -0,0 +1,35 @@
1
+ module OSTSdk
2
+
3
+ module Saas
4
+
5
+ class RecoveryOwners < OSTSdk::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
+ # config: (Hash)
15
+ #
16
+ def initialize(params)
17
+ super
18
+ @url_prefix = '/users'
19
+ @url_suffix = '/recovery-owners'
20
+ end
21
+
22
+ # Get Recovery Owner
23
+ #
24
+ # Returns:
25
+ # response: (Hash)
26
+ #
27
+ def get(params = {})
28
+ http_helper.send_get_request("#{@url_prefix}/#{get_user_id!(params)}#{@url_suffix}/#{get_recovery_owner_address!(params)}", params)
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+
35
+ end