Skip to content

Commit bdf4fca

Browse files
Merge pull request #75 from ostdotcom/develop
Redemptions API.
2 parents b454be6 + 9ad9980 commit bdf4fca

File tree

12 files changed

+275
-5
lines changed

12 files changed

+275
-5
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
[OST Ruby SDK v2.2.3](https://github.com/ostdotcom/ost-sdk-ruby/tree/v2.2.3)
2+
---
3+
4+
* Added redemptions module to call redemptions management OST APIs.
5+
* Added redeemable sku module to call redeemable sku management OST APIs.
6+
17
[OST Ruby SDK v2.2.2](https://github.com/ostdotcom/ost-sdk-ruby/tree/v2.2.2)
28
---
39

README.md

Lines changed: 100 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ For executing transactions, you need to understand the 4 modules described below
388388
price_point = 0.020606673
389389
390390
# Price point needs to be passed in atto. Multiply the price point with 10^18. Also, this value should be a string.
391-
intended_price_point_in_atto = "%.f" % ((price_point * 10**18)
391+
intended_price_point_in_atto = "%.f" % ((price_point * 10**18))
392392
393393
# Amount of Fiat to be transferred.
394394
transfer_amount_in_fiat = 0.1
@@ -730,3 +730,102 @@ For executing transactions, you need to understand the 4 modules described below
730730
signature_params[:webhook_secret] = 'mySecret'
731731
response = webhooks_service.verify_signature(signature_params)
732732
```
733+
734+
735+
### Redemption Modules
736+
737+
Two modules of redemption, "Redeemable SKUs" and "User Redemptions", are described below.
738+
739+
#### Redeemable SKUs Module
740+
741+
* Initialize Redeemable SKUs service object to perform redeemable skus specific actions.
742+
743+
```ruby
744+
redeemable_skus_service = ost_sdk.services.redeemable_skus
745+
```
746+
* Get Redeemable SKU detail using the redeemable sku id.
747+
748+
```ruby
749+
# Mandatory API parameters
750+
751+
# Fetch details of following redeemable sku.
752+
redeemable_sku_id = '1'
753+
754+
get_params = {}
755+
get_params[:redeemable_sku_id] = redeemable_sku_id
756+
response = redeemable_skus_service.get(get_params)
757+
```
758+
759+
* Get Redeemable SKUs List. Pagination is supported by this API.
760+
761+
```ruby
762+
# Mandatory API parameters
763+
# NOTE: No mandatory parameters.
764+
765+
# Optional API parameters
766+
767+
# Limit.
768+
limit = 10
769+
770+
# Array of redeemable SKU ids.
771+
redeemable_sku_ids = ['1001', '1002']
772+
773+
# Pagination identifier from the previous API call response. Not needed for page one.
774+
pagination_identifier = 'eyJwY___'
775+
776+
get_params = {}
777+
get_params[:redeemable_sku_ids] = redeemable_sku_ids
778+
get_params[:limit] = limit
779+
get_params[:pagination_identifier] = pagination_identifier
780+
response = redeemable_skus_service.get_list(get_params)
781+
```
782+
#### User Redemptions Module
783+
784+
* Initialize Redemptions service object to perform user redemption specific actions.
785+
786+
```ruby
787+
redemptions_service = ost_sdk.services.redemptions
788+
```
789+
790+
* Get User redemption details using the userId and redemptionId.
791+
792+
```ruby
793+
# Mandatory API parameters
794+
795+
# UserId of user for whom redemption details needs to be fetched.
796+
user_id = 'ee8___'
797+
798+
# Unique identifier of the redemption of user.
799+
redemption_id = 'r43___'
800+
801+
get_params = {}
802+
get_params[:user_id] = user_id
803+
get_params[:redemption_id] = redemption_id
804+
805+
response = redemptions_service.get(get_params)
806+
```
807+
808+
* Get User Redemptions List. Pagination is supported by this API.
809+
810+
```ruby
811+
# Mandatory API parameters
812+
user_id = 'ee8___'
813+
814+
# Optional API parameters
815+
816+
# Limit.
817+
limit = 10
818+
819+
# Array of user redemption uuids.
820+
redemption_ids = ['a743___', 'a743___']
821+
822+
# Pagination identifier from the previous API call response. Not needed for page one.
823+
pagination_identifier = 'eyJwY___'
824+
825+
get_params = {}
826+
get_params[:user_id] = user_id
827+
get_params[:redemption_ids] = redemption_ids
828+
get_params[:limit] = limit
829+
get_params[:pagination_identifier] = pagination_identifier
830+
response = redemptions_service.get_list(get_params)
831+
```

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.2.2
1+
2.2.3

lib/config.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ class Config
99
OST_KIT_COMPANY_USER_ID = ENV['OST_KIT_COMPANY_USER_ID']
1010
OST_KIT_AUX_CHAIN_ID = ENV['OST_KIT_AUX_CHAIN_ID']
1111
OST_KIT_TRANSACTION_ID = ENV['OST_KIT_TRANSACTION_ID']
12+
OST_KIT_REDEMPTION_ID = ENV['OST_KIT_REDEMPTION_ID']
13+
OST_KIT_REDEEMABLE_SKU_ID = ENV['OST_KIT_REDEEMABLE_SKU_ID']
1214
OST_KIT_USER_ID = ENV['OST_KIT_USER_ID']
1315
OST_KIT_USER_DEVICE_ADDRESS = ENV['OST_KIT_USER_DEVICE_ADDRESS']
1416
OST_KIT_SESSION_ADDRESS = ENV['OST_KIT_SESSION_ADDRESS']

lib/ost-sdk-ruby/saas.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
require_relative 'saas/manifest'
88
require_relative 'saas/price_points'
99
require_relative 'saas/recovery_owners'
10+
require_relative 'saas/redemptions'
11+
require_relative 'saas/redeemable_skus'
1012
require_relative 'saas/rules'
1113
require_relative 'saas/sessions'
1214
require_relative 'saas/tokens'

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,30 @@ def get_webhook_id!(params)
6666
get_value_for_key!(params, "webhook_id")
6767
end
6868

69+
# Get redemption_id key from params hash and delete it
70+
#
71+
# Arguments:
72+
# params: (Hash)
73+
#
74+
# Returns:
75+
# redemption_id: (String)
76+
#
77+
def get_redemption_id!(params)
78+
get_value_for_key!(params, "redemption_id")
79+
end
80+
81+
# Get redeemable_sku_id key from params hash and delete it
82+
#
83+
# Arguments:
84+
# params: (Hash)
85+
#
86+
# Returns:
87+
# redeemable_sku_id: (String)
88+
#
89+
def get_redeemable_sku_id!(params)
90+
get_value_for_key!(params, "redeemable_sku_id")
91+
end
92+
6993
# Get chain_id key from params hash and delete it
7094
#
7195
# Arguments:

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ module Saas
44

55
class Manifest
66

7-
attr_reader :balance, :chains, :device_managers, :devices, :price_points, :recovery_owners, :rules,
8-
:sessions, :tokens, :transactions, :users, :base_tokens, :webhooks
7+
attr_reader :balance, :chains, :device_managers, :devices, :price_points, :recovery_owners, :redemptions,
8+
:redeemable_skus, :rules, :sessions, :tokens, :transactions, :users, :base_tokens, :webhooks
99

1010
# Initialize
1111
#
@@ -24,6 +24,8 @@ def initialize(params)
2424
@devices = OSTSdk::Saas::Devices.new(params)
2525
@price_points = OSTSdk::Saas::PricePoints.new(params)
2626
@recovery_owners = OSTSdk::Saas::RecoveryOwners.new(params)
27+
@redemptions = OSTSdk::Saas::Redemptions.new(params)
28+
@redeemable_skus = OSTSdk::Saas::RedeemableSkus.new(params)
2729

2830
@rules = OSTSdk::Saas::Rules.new(params)
2931
@sessions = OSTSdk::Saas::Sessions.new(params)
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
module OSTSdk
2+
3+
module Saas
4+
5+
class RedeemableSkus < 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 = '/redeemable-skus'
19+
end
20+
21+
# Get redeemable sku detail
22+
#
23+
# Returns:
24+
# response: (Hash)
25+
#
26+
def get(params = {})
27+
http_helper.send_get_request("#{@url_prefix}/#{get_redeemable_sku_id!(params)}", params)
28+
end
29+
30+
# List redeemable sku details
31+
#
32+
# Returns:
33+
# response: (Hash)
34+
#
35+
def get_list(params = {})
36+
http_helper.send_get_request("#{@url_prefix}", params)
37+
end
38+
39+
end
40+
41+
end
42+
43+
end
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
module OSTSdk
2+
3+
module Saas
4+
5+
class Redemptions < 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 = '/redemptions'
20+
end
21+
22+
# Get redemption detail
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_redemption_id!(params)}", params)
29+
end
30+
31+
# List redemptions 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+
end
41+
42+
end
43+
44+
end
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
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 RedeemableSkusTest < Test::Unit::TestCase
7+
8+
def redeemable_skus_service
9+
@redeemable_skus_service ||= Config::OST_SDK.services.redeemable_skus
10+
end
11+
12+
def test_redeemable_skus_get
13+
result = redeemable_skus_service.get(redeemable_sku_id: Config::OST_KIT_REDEEMABLE_SKU_ID)
14+
puts "result=>#{result}" unless result["success"]
15+
assert_equal(result["success"], true)
16+
end
17+
18+
def test_redeemable_skus_get_list
19+
result = redeemable_skus_service.get_list()
20+
puts "result=>#{result}" unless result["success"]
21+
assert_equal(result["success"], true)
22+
end
23+
24+
end

0 commit comments

Comments
 (0)