Skip to content

Commit 102db7e

Browse files
authored
DEVX-8854: Add Subaccounts snippets (#109)
* Adding subaccounts snippets
1 parent f0bdce0 commit 102db7e

13 files changed

+186
-9
lines changed

.env-example

+9
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,15 @@ VONAGE_BRAND_NAME=
6666
# Vonage Account API variables
6767
VONAGE_SECRET_ID=
6868

69+
## Subaccounts
70+
71+
START_DATE=
72+
NEW_SUBACCOUNT_NAME=
73+
NEW_SUBACCOUNT_SECRET=
74+
SUBACCOUNT_KEY=
75+
AMOUNT=
76+
COUNTRY=
77+
6978
# Vonage Verify2 API variables
7079
REQUEST_ID=
7180
CODE=

Gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
22

33
gem 'dotenv', '2.7.6'
44
gem 'faye-websocket', '0.11.0'
5-
gem 'vonage', '~> 7.2.1'
5+
gem 'vonage', '~> 7.28'
66
gem 'sinatra', '2.1.0'
77
gem 'sinatra-contrib', '2.1.0'
88
gem 'rack-contrib', '2.3.0'

Gemfile.lock

+20-8
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,35 @@ GEM
22
remote: https://rubygems.org/
33
specs:
44
ast (2.4.0)
5+
base64 (0.2.0)
56
byebug (11.0.1)
7+
connection_pool (2.4.1)
68
daemons (1.3.1)
79
dotenv (2.7.6)
810
eventmachine (1.2.7)
911
faye-websocket (0.11.0)
1012
eventmachine (>= 0.12.0)
1113
websocket-driver (>= 0.5.1)
1214
jaro_winkler (1.5.3)
13-
jwt (2.2.2)
15+
jwt (2.9.3)
16+
base64
1417
multi_json (1.15.0)
18+
multipart-post (2.4.1)
1519
mustermann (1.1.1)
1620
ruby2_keywords (~> 0.0.1)
17-
nexmo-jwt (0.1.2)
18-
jwt (~> 2)
21+
net-http-persistent (4.0.4)
22+
connection_pool (~> 2.2)
1923
parallel (1.17.0)
2024
parser (2.6.3.0)
2125
ast (~> 2.4.0)
26+
phonelib (0.9.3)
2227
rack (2.2.3)
2328
rack-contrib (2.3.0)
2429
rack (~> 2.0)
2530
rack-protection (2.1.0)
2631
rack
2732
rainbow (3.0.0)
33+
rexml (3.3.9)
2834
rubocop (0.72.0)
2935
jaro_winkler (~> 1.5.1)
3036
parallel (~> 1.10)
@@ -45,21 +51,27 @@ GEM
4551
rack-protection (= 2.1.0)
4652
sinatra (= 2.1.0)
4753
tilt (~> 2.0)
48-
sorbet-runtime (0.5.6281)
54+
sorbet-runtime (0.5.11625)
4955
thin (1.8.0)
5056
daemons (~> 1.0, >= 1.0.9)
5157
eventmachine (~> 1.0, >= 1.0.4)
5258
rack (>= 1, < 3)
5359
tilt (2.0.10)
5460
unicode-display_width (1.6.0)
55-
vonage (7.2.1)
56-
nexmo-jwt (~> 0.1.2)
61+
vonage (7.28.0)
62+
multipart-post (~> 2.0)
63+
net-http-persistent (~> 4.0, >= 4.0.2)
64+
phonelib
65+
rexml
5766
sorbet-runtime (~> 0.5)
67+
vonage-jwt (~> 0.2.0)
5868
zeitwerk (~> 2, >= 2.2)
69+
vonage-jwt (0.2.0)
70+
jwt (~> 2)
5971
websocket-driver (0.7.3)
6072
websocket-extensions (>= 0.1.0)
6173
websocket-extensions (0.1.5)
62-
zeitwerk (2.4.2)
74+
zeitwerk (2.7.1)
6375

6476
PLATFORMS
6577
ruby
@@ -73,7 +85,7 @@ DEPENDENCIES
7385
sinatra (= 2.1.0)
7486
sinatra-contrib (= 2.1.0)
7587
thin (= 1.8.0)
76-
vonage (~> 7.2.1)
88+
vonage (~> 7.28)
7789

7890
BUNDLED WITH
7991
2.2.3

subaccounts/create-subaccount.rb

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
require 'dotenv/load'
2+
require 'vonage'
3+
4+
VONAGE_API_KEY = ENV['VONAGE_API_KEY']
5+
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
6+
NEW_SUBACCOUNT_NAME = ENV['NEW_SUBACCOUNT_NAME']
7+
NEW_SUBACCOUNT_SECRET = ENV['NEW_SUBACCOUNT_SECRET']
8+
9+
client = Vonage::Client.new(
10+
api_key: VONAGE_API_KEY,
11+
api_secret: VONAGE_API_SECRET
12+
)
13+
14+
client.subaccounts.create(
15+
name: NEW_SUBACCOUNT_NAME,
16+
secret: NEW_SUBACCOUNT_SECRET
17+
)

subaccounts/find-subaccount.rb

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
require 'dotenv/load'
2+
require 'vonage'
3+
4+
VONAGE_API_KEY = ENV['VONAGE_API_KEY']
5+
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
6+
SUBACCOUNT_KEY = ENV['SUBACCOUNT_KEY']
7+
8+
client = Vonage::Client.new(
9+
api_key: VONAGE_API_KEY,
10+
api_secret: VONAGE_API_SECRET
11+
)
12+
13+
subaccount = client.subaccounts.find(subaccount_key: SUBACCOUNT_KEY)

subaccounts/list-balance-transfers.rb

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
require 'dotenv/load'
2+
require 'vonage'
3+
4+
VONAGE_API_KEY = ENV['VONAGE_API_KEY']
5+
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
6+
START_DATE = ENV['START_DATE']
7+
8+
client = Vonage::Client.new(
9+
api_key: VONAGE_API_KEY,
10+
api_secret: VONAGE_API_SECRET
11+
)
12+
13+
balance_transfers_list = client.subaccounts.list_balance_transfers(start_date: START_DATE)

subaccounts/list-credit-transfers.rb

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
require 'dotenv/load'
2+
require 'vonage'
3+
4+
VONAGE_API_KEY = ENV['VONAGE_API_KEY']
5+
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
6+
START_DATE = ENV['START_DATE']
7+
8+
client = Vonage::Client.new(
9+
api_key: VONAGE_API_KEY,
10+
api_secret: VONAGE_API_SECRET
11+
)
12+
13+
credit_transfers_list = client.subaccounts.list_credit_transfers(start_date: START_DATE)

subaccounts/list-subaccounts.rb

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
require 'dotenv/load'
2+
require 'vonage'
3+
4+
VONAGE_API_KEY = ENV['VONAGE_API_KEY']
5+
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
6+
7+
client = Vonage::Client.new(
8+
api_key: VONAGE_API_KEY,
9+
api_secret: VONAGE_API_SECRET
10+
)
11+
12+
subaccounts_list = client.subaccounts.list

subaccounts/reactivate-subaccount.rb

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
require 'dotenv/load'
2+
require 'vonage'
3+
4+
VONAGE_API_KEY = ENV['VONAGE_API_KEY']
5+
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
6+
SUBACCOUNT_KEY = ENV['SUBACCOUNT_KEY']
7+
8+
client = Vonage::Client.new(
9+
api_key: VONAGE_API_KEY,
10+
api_secret: VONAGE_API_SECRET
11+
)
12+
13+
client.subaccounts.update(
14+
subaccount_key: SUBACCOUNT_KEY,
15+
suspended: false
16+
)

subaccounts/suspend-subaccount.rb

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
require 'dotenv/load'
2+
require 'vonage'
3+
4+
VONAGE_API_KEY = ENV['VONAGE_API_KEY']
5+
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
6+
SUBACCOUNT_KEY = ENV['SUBACCOUNT_KEY']
7+
8+
client = Vonage::Client.new(
9+
api_key: VONAGE_API_KEY,
10+
api_secret: VONAGE_API_SECRET
11+
)
12+
13+
client.subaccounts.update(
14+
subaccount_key: SUBACCOUNT_KEY,
15+
suspended: true
16+
)

subaccounts/transfer-balance.rb

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
require 'dotenv/load'
2+
require 'vonage'
3+
4+
VONAGE_API_KEY = ENV['VONAGE_API_KEY']
5+
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
6+
SUBACCOUNT_KEY = ENV['SUBACCOUNT_KEY']
7+
AMOUNT = ENV['AMOUNT'].to_f
8+
9+
client = Vonage::Client.new(
10+
api_key: VONAGE_API_KEY,
11+
api_secret: VONAGE_API_SECRET
12+
)
13+
14+
client.subaccounts.transfer_balance(
15+
from: VONAGE_API_KEY,
16+
to: SUBACCOUNT_KEY,
17+
amount: AMOUNT
18+
)

subaccounts/transfer-credit.rb

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
require 'dotenv/load'
2+
require 'vonage'
3+
4+
VONAGE_API_KEY = ENV['VONAGE_API_KEY']
5+
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
6+
SUBACCOUNT_KEY = ENV['SUBACCOUNT_KEY']
7+
AMOUNT = ENV['AMOUNT'].to_f
8+
9+
client = Vonage::Client.new(
10+
api_key: VONAGE_API_KEY,
11+
api_secret: VONAGE_API_SECRET
12+
)
13+
14+
client.subaccounts.transfer_credit(
15+
from: VONAGE_API_KEY,
16+
to: SUBACCOUNT_KEY,
17+
amount: AMOUNT
18+
)

subaccounts/transfer-number.rb

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
require 'dotenv/load'
2+
require 'vonage'
3+
4+
VONAGE_API_KEY = ENV['VONAGE_API_KEY']
5+
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
6+
SUBACCOUNT_KEY = ENV['SUBACCOUNT_KEY']
7+
VONAGE_NUMBER = ENV['VONAGE_NUMBER']
8+
COUNTRY = ENV['COUNTRY']
9+
10+
client = Vonage::Client.new(
11+
api_key: VONAGE_API_KEY,
12+
api_secret: VONAGE_API_SECRET
13+
)
14+
15+
client.subaccounts.transfer_number(
16+
from: VONAGE_API_KEY,
17+
to: SUBACCOUNT_KEY,
18+
number: VONAGE_NUMBER,
19+
country: COUNTRY
20+
)

0 commit comments

Comments
 (0)