Skip to content

Commit 32cb28c

Browse files
author
Puneet Khushwani
committed
moving ledger and balance API's to v1.1
1 parent 0de5528 commit 32cb28c

6 files changed

Lines changed: 83 additions & 14 deletions

File tree

lib/ost-sdk-ruby/saas.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@
1313
require_relative 'saas/v1/airdrops'
1414
require_relative 'saas/v1/transfers'
1515
require_relative 'saas/v1/transactions'
16-
require_relative 'saas/v1/balances'
17-
require_relative 'saas/v1/ledger'
16+
17+
require_relative 'saas/v1.1/services'
18+
require_relative 'saas/v1.1/balances'
19+
require_relative 'saas/v1.1/ledger'
1820

1921
module OSTSdk
2022

lib/ost-sdk-ruby/saas/services.rb

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def initialize(params)
2020
fail 'missing API Key' if params[:api_key].nil?
2121
fail 'missing API Secret' if params[:api_secret].nil?
2222

23-
params[:api_base_url].gsub!(/\/$/, '') # remove trailing slash
23+
params[:api_base_url] = params[:api_base_url].gsub(/\/$/, '') # remove trailing slash
2424
params[:api_spec] = false if params[:api_spec].nil?
2525

2626
set_manifest(params)
@@ -31,27 +31,55 @@ def initialize(params)
3131

3232
def set_manifest(params)
3333

34-
api_version = extract_api_version(params[:api_base_url])
34+
int_api_version = extract_integer_api_version(params[:api_base_url])
3535

3636
# Provide access to version specific API endpoints
37-
if api_version == ''
37+
if int_api_version == v0_int_api_version
3838
# puts("You are using an deprecated version of OST API. Please update to the latest version.")
3939
@services = OSTSdk::Saas::V0::Services.new(params)
40-
elsif api_version == 'v1'
40+
elsif int_api_version == v1_int_api_version
4141
@services = OSTSdk::Saas::V1::Services.new(params)
42+
elsif int_api_version < v2_int_api_version
43+
@services = OSTSdk::Saas::V1Dot1::Services.new(params)
4244
else
4345
fail 'Api endpoint is invalid'
4446
end
4547

4648
end
4749

48-
def extract_api_version(api_base_url)
50+
def extract_integer_api_version(api_base_url)
4951

5052
api_version = ((api_base_url || '').split("/")[3] || '').downcase
51-
api_major_version = (api_version.split('.')[0] || '')
53+
return v0_int_api_version if api_version == ''
5254

53-
return api_major_version
55+
# version if passed should always start with 'v'
56+
fail "invalid version string #{api_version}" if api_version[0] != 'v'
5457

58+
# exclude 'v'
59+
str_api_version = api_version[1..-1]
60+
61+
# if str_api_version doesn't start with a integer value fail
62+
fail "invalid version string #{api_version}" if str_api_version.to_i == 0
63+
64+
buffer = str_api_version.split('.')
65+
66+
# version can not have more than 2 '.' ie 1.1.1.2 is not allowed
67+
fail "invalid version string #{api_version}" if buffer.length > 3
68+
69+
buffer[0].to_i * 100 + (buffer[1] || 0).to_i * 10 + (buffer[2] || 0).to_i
70+
71+
end
72+
73+
def v0_int_api_version
74+
0
75+
end
76+
77+
def v1_int_api_version
78+
100
79+
end
80+
81+
def v2_int_api_version
82+
200
5583
end
5684

5785
end
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module OSTSdk
22

33
module Saas
44

5-
module V1
5+
module V1Dot1
66

77
class Balances < OSTSdk::Saas::Base
88

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module OSTSdk
22

33
module Saas
44

5-
module V1
5+
module V1Dot1
66

77
class Ledger < OSTSdk::Saas::Base
88

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
module OSTSdk
2+
3+
module Saas
4+
5+
module V1Dot1
6+
7+
class Services
8+
9+
attr_reader :users, :token, :actions, :airdrops, :transactions, :transfers, :balances, :ledger
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+
# Modules which were implemented with V1.0
22+
@users = OSTSdk::Saas::V1::Users.new(params)
23+
@token = OSTSdk::Saas::V1::Token.new(params)
24+
@actions = OSTSdk::Saas::V1::Actions.new(params)
25+
@airdrops = OSTSdk::Saas::V1::Airdrops.new(params)
26+
@transactions = OSTSdk::Saas::V1::Transactions.new(params)
27+
@transfers = OSTSdk::Saas::V1::Transfers.new(params)
28+
29+
# Modules which were implemented with V1.1
30+
@balances = OSTSdk::Saas::V1Dot1::Balances.new(params)
31+
@ledger = OSTSdk::Saas::V1Dot1::Ledger.new(params)
32+
33+
end
34+
35+
end
36+
37+
end
38+
39+
end
40+
41+
end

lib/ost-sdk-ruby/saas/v1/services.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module V1
66

77
class Services
88

9-
attr_reader :users, :token, :actions, :airdrops, :transactions, :transfers, :balances, :ledger
9+
attr_reader :users, :token, :actions, :airdrops, :transactions, :transfers
1010

1111
# Initialize
1212
#
@@ -24,8 +24,6 @@ def initialize(params)
2424
@airdrops = OSTSdk::Saas::V1::Airdrops.new(params)
2525
@transactions = OSTSdk::Saas::V1::Transactions.new(params)
2626
@transfers = OSTSdk::Saas::V1::Transfers.new(params)
27-
@balances = OSTSdk::Saas::V1::Balances.new(params)
28-
@ledger = OSTSdk::Saas::V1::Ledger.new(params)
2927

3028
end
3129

0 commit comments

Comments
 (0)