Skip to content

Commit

Permalink
DEVX-8854: Add Subaccounts snippets (#109)
Browse files Browse the repository at this point in the history
* Adding subaccounts snippets
  • Loading branch information
superchilled authored Oct 30, 2024
1 parent f0bdce0 commit 102db7e
Show file tree
Hide file tree
Showing 13 changed files with 186 additions and 9 deletions.
9 changes: 9 additions & 0 deletions .env-example
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,15 @@ VONAGE_BRAND_NAME=
# Vonage Account API variables
VONAGE_SECRET_ID=

## Subaccounts

START_DATE=
NEW_SUBACCOUNT_NAME=
NEW_SUBACCOUNT_SECRET=
SUBACCOUNT_KEY=
AMOUNT=
COUNTRY=

# Vonage Verify2 API variables
REQUEST_ID=
CODE=
Expand Down
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ source 'https://rubygems.org'

gem 'dotenv', '2.7.6'
gem 'faye-websocket', '0.11.0'
gem 'vonage', '~> 7.2.1'
gem 'vonage', '~> 7.28'
gem 'sinatra', '2.1.0'
gem 'sinatra-contrib', '2.1.0'
gem 'rack-contrib', '2.3.0'
Expand Down
28 changes: 20 additions & 8 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,35 @@ GEM
remote: https://rubygems.org/
specs:
ast (2.4.0)
base64 (0.2.0)
byebug (11.0.1)
connection_pool (2.4.1)
daemons (1.3.1)
dotenv (2.7.6)
eventmachine (1.2.7)
faye-websocket (0.11.0)
eventmachine (>= 0.12.0)
websocket-driver (>= 0.5.1)
jaro_winkler (1.5.3)
jwt (2.2.2)
jwt (2.9.3)
base64
multi_json (1.15.0)
multipart-post (2.4.1)
mustermann (1.1.1)
ruby2_keywords (~> 0.0.1)
nexmo-jwt (0.1.2)
jwt (~> 2)
net-http-persistent (4.0.4)
connection_pool (~> 2.2)
parallel (1.17.0)
parser (2.6.3.0)
ast (~> 2.4.0)
phonelib (0.9.3)
rack (2.2.3)
rack-contrib (2.3.0)
rack (~> 2.0)
rack-protection (2.1.0)
rack
rainbow (3.0.0)
rexml (3.3.9)
rubocop (0.72.0)
jaro_winkler (~> 1.5.1)
parallel (~> 1.10)
Expand All @@ -45,21 +51,27 @@ GEM
rack-protection (= 2.1.0)
sinatra (= 2.1.0)
tilt (~> 2.0)
sorbet-runtime (0.5.6281)
sorbet-runtime (0.5.11625)
thin (1.8.0)
daemons (~> 1.0, >= 1.0.9)
eventmachine (~> 1.0, >= 1.0.4)
rack (>= 1, < 3)
tilt (2.0.10)
unicode-display_width (1.6.0)
vonage (7.2.1)
nexmo-jwt (~> 0.1.2)
vonage (7.28.0)
multipart-post (~> 2.0)
net-http-persistent (~> 4.0, >= 4.0.2)
phonelib
rexml
sorbet-runtime (~> 0.5)
vonage-jwt (~> 0.2.0)
zeitwerk (~> 2, >= 2.2)
vonage-jwt (0.2.0)
jwt (~> 2)
websocket-driver (0.7.3)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
zeitwerk (2.4.2)
zeitwerk (2.7.1)

PLATFORMS
ruby
Expand All @@ -73,7 +85,7 @@ DEPENDENCIES
sinatra (= 2.1.0)
sinatra-contrib (= 2.1.0)
thin (= 1.8.0)
vonage (~> 7.2.1)
vonage (~> 7.28)

BUNDLED WITH
2.2.3
17 changes: 17 additions & 0 deletions subaccounts/create-subaccount.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
require 'dotenv/load'
require 'vonage'

VONAGE_API_KEY = ENV['VONAGE_API_KEY']
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
NEW_SUBACCOUNT_NAME = ENV['NEW_SUBACCOUNT_NAME']
NEW_SUBACCOUNT_SECRET = ENV['NEW_SUBACCOUNT_SECRET']

client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)

client.subaccounts.create(
name: NEW_SUBACCOUNT_NAME,
secret: NEW_SUBACCOUNT_SECRET
)
13 changes: 13 additions & 0 deletions subaccounts/find-subaccount.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
require 'dotenv/load'
require 'vonage'

VONAGE_API_KEY = ENV['VONAGE_API_KEY']
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
SUBACCOUNT_KEY = ENV['SUBACCOUNT_KEY']

client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)

subaccount = client.subaccounts.find(subaccount_key: SUBACCOUNT_KEY)
13 changes: 13 additions & 0 deletions subaccounts/list-balance-transfers.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
require 'dotenv/load'
require 'vonage'

VONAGE_API_KEY = ENV['VONAGE_API_KEY']
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
START_DATE = ENV['START_DATE']

client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)

balance_transfers_list = client.subaccounts.list_balance_transfers(start_date: START_DATE)
13 changes: 13 additions & 0 deletions subaccounts/list-credit-transfers.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
require 'dotenv/load'
require 'vonage'

VONAGE_API_KEY = ENV['VONAGE_API_KEY']
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
START_DATE = ENV['START_DATE']

client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)

credit_transfers_list = client.subaccounts.list_credit_transfers(start_date: START_DATE)
12 changes: 12 additions & 0 deletions subaccounts/list-subaccounts.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
require 'dotenv/load'
require 'vonage'

VONAGE_API_KEY = ENV['VONAGE_API_KEY']
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']

client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)

subaccounts_list = client.subaccounts.list
16 changes: 16 additions & 0 deletions subaccounts/reactivate-subaccount.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
require 'dotenv/load'
require 'vonage'

VONAGE_API_KEY = ENV['VONAGE_API_KEY']
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
SUBACCOUNT_KEY = ENV['SUBACCOUNT_KEY']

client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)

client.subaccounts.update(
subaccount_key: SUBACCOUNT_KEY,
suspended: false
)
16 changes: 16 additions & 0 deletions subaccounts/suspend-subaccount.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
require 'dotenv/load'
require 'vonage'

VONAGE_API_KEY = ENV['VONAGE_API_KEY']
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
SUBACCOUNT_KEY = ENV['SUBACCOUNT_KEY']

client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)

client.subaccounts.update(
subaccount_key: SUBACCOUNT_KEY,
suspended: true
)
18 changes: 18 additions & 0 deletions subaccounts/transfer-balance.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
require 'dotenv/load'
require 'vonage'

VONAGE_API_KEY = ENV['VONAGE_API_KEY']
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
SUBACCOUNT_KEY = ENV['SUBACCOUNT_KEY']
AMOUNT = ENV['AMOUNT'].to_f

client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)

client.subaccounts.transfer_balance(
from: VONAGE_API_KEY,
to: SUBACCOUNT_KEY,
amount: AMOUNT
)
18 changes: 18 additions & 0 deletions subaccounts/transfer-credit.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
require 'dotenv/load'
require 'vonage'

VONAGE_API_KEY = ENV['VONAGE_API_KEY']
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
SUBACCOUNT_KEY = ENV['SUBACCOUNT_KEY']
AMOUNT = ENV['AMOUNT'].to_f

client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)

client.subaccounts.transfer_credit(
from: VONAGE_API_KEY,
to: SUBACCOUNT_KEY,
amount: AMOUNT
)
20 changes: 20 additions & 0 deletions subaccounts/transfer-number.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
require 'dotenv/load'
require 'vonage'

VONAGE_API_KEY = ENV['VONAGE_API_KEY']
VONAGE_API_SECRET = ENV['VONAGE_API_SECRET']
SUBACCOUNT_KEY = ENV['SUBACCOUNT_KEY']
VONAGE_NUMBER = ENV['VONAGE_NUMBER']
COUNTRY = ENV['COUNTRY']

client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)

client.subaccounts.transfer_number(
from: VONAGE_API_KEY,
to: SUBACCOUNT_KEY,
number: VONAGE_NUMBER,
country: COUNTRY
)

0 comments on commit 102db7e

Please sign in to comment.