Skip to content

Commit 9c8cad9

Browse files
committed
update applications snippets, add users snippets
1 parent 6dc4c64 commit 9c8cad9

12 files changed

+264
-96
lines changed

.env.dist

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,11 @@ VONAGE_NUMBER_FEATURES='SMS,VOICE'
7676
MESSAGES_APPLICATION_ID='12a3b4cd-a1b2-1ab2-a1b2-a1234bc5d678'
7777
VOICE_CALLBACK_TYPE='tel'
7878
VOICE_CALLBACK_VALUE='447700900002'
79-
VOICE_STATUS_URL='https://example.com/webhooks/status'
79+
VOICE_STATUS_URL='https://example.com/webhooks/status'
80+
81+
# Users
82+
USER_NAME='USER_NAME'
83+
USER_DISPLAY_NAME='USER_DISPLAY_NAME'
84+
USER_NEW_NAME='USER_NEW_NAME'
85+
USER_NEW_DISPLAY_NAME='USER_NEW_DISPLAY_NAME'
86+
USER_ID='USER_ID'

account/configure-account.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import os
22
from os.path import join, dirname
3-
from pprint import pprint
43
from dotenv import load_dotenv
54

65
dotenv_path = join(dirname(__file__), '../.env')

application/create-application.py

Lines changed: 78 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,91 @@
11
#!/usr/bin/env python3
2-
from pprint import pprint
32
import os
43
from os.path import join, dirname
54
from dotenv import load_dotenv
6-
import vonage
7-
85

96
dotenv_path = join(dirname(__file__), "../.env")
107
load_dotenv(dotenv_path)
118

129
VONAGE_API_KEY = os.getenv('VONAGE_API_KEY')
1310
VONAGE_API_SECRET = os.getenv('VONAGE_API_SECRET')
1411

15-
client = vonage.Client(
16-
key=VONAGE_API_KEY,
17-
secret=VONAGE_API_SECRET
12+
from vonage import Auth, Vonage
13+
from vonage_application import (
14+
ApplicationConfig,
15+
ApplicationData,
16+
ApplicationUrl,
17+
Capabilities,
18+
Messages,
19+
MessagesWebhooks,
20+
Region,
21+
Verify,
22+
VerifyWebhooks,
23+
Voice,
24+
VoiceUrl,
25+
VoiceWebhooks,
26+
)
27+
28+
client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
29+
30+
# Voice application options
31+
voice = Voice(
32+
webhooks=VoiceWebhooks(
33+
answer_url=VoiceUrl(
34+
address='https://example.com/answer',
35+
http_method='POST',
36+
connect_timeout=500,
37+
socket_timeout=3000,
38+
),
39+
fallback_answer_url=VoiceUrl(
40+
address='https://example.com/fallback',
41+
http_method='POST',
42+
connect_timeout=500,
43+
socket_timeout=3000,
44+
),
45+
event_url=VoiceUrl(
46+
address='https://example.com/event',
47+
http_method='POST',
48+
connect_timeout=500,
49+
socket_timeout=3000,
50+
),
51+
),
52+
signed_callbacks=True,
53+
conversations_ttl=8000,
54+
leg_persistence_time=14,
55+
region=Region.NA_EAST,
56+
)
57+
58+
# Messages application options
59+
messages = Messages(
60+
version='v1',
61+
webhooks=MessagesWebhooks(
62+
inbound_url=ApplicationUrl(
63+
address='https://example.com/inbound', http_method='POST'
64+
),
65+
status_url=ApplicationUrl(
66+
address='https://example.com/status', http_method='POST'
67+
),
68+
),
69+
authenticate_inbound_media=True,
1870
)
1971

20-
response = client.application.create_application({
21-
"name": "Code Example App",
22-
"capabilities": {
23-
"messages": {
24-
"webhooks": {
25-
"inbound_url": {
26-
"address": "https://example.com/webhooks/inbound",
27-
"http_method": "POST"
28-
},
29-
"status_url": {
30-
"address": "https://example.com/webhooks/status",
31-
"http_method": "POST"
32-
}
33-
}
34-
}
35-
}
36-
})
37-
38-
pprint(response)
72+
# Verify application options
73+
verify = Verify(
74+
webhooks=VerifyWebhooks(
75+
status_url=ApplicationUrl(address='https://example.com/status', http_method='GET')
76+
),
77+
)
78+
79+
# Set the application capabilities
80+
capabilities = Capabilities(voice=voice, messages=messages, verify=verify)
81+
82+
# Set the application configuration that will be applied
83+
params = ApplicationConfig(
84+
name='My Custom Application',
85+
capabilities=capabilities,
86+
)
87+
88+
# Call the API
89+
response: ApplicationData = client.application.create_application(params)
90+
91+
print(response)

application/delete-application.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
#!/usr/bin/env python3
22
import os
33
from os.path import join, dirname
4-
from pprint import pprint
54
from dotenv import load_dotenv
6-
import vonage
75

86
dotenv_path = join(dirname(__file__), "../.env")
97
load_dotenv(dotenv_path)
@@ -12,11 +10,8 @@
1210
VONAGE_API_SECRET = os.getenv('VONAGE_API_SECRET')
1311
VONAGE_APPLICATION_ID = os.getenv('VONAGE_APPLICATION_ID')
1412

15-
client = vonage.Client(
16-
key=VONAGE_API_KEY,
17-
secret=VONAGE_API_SECRET
18-
)
13+
from vonage import Auth, Vonage
1914

20-
response = client.application.delete_application(VONAGE_APPLICATION_ID)
15+
client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
2116

22-
pprint(response)
17+
client.application.delete_application(VONAGE_APPLICATION_ID)

application/get-application.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
#!/usr/bin/env python3
22
import os
33
from os.path import join, dirname
4-
from pprint import pprint
54
from dotenv import load_dotenv
6-
import vonage
75

86
dotenv_path = join(dirname(__file__), "../.env")
97
load_dotenv(dotenv_path)
108

119
VONAGE_API_KEY = os.getenv('VONAGE_API_KEY')
1210
VONAGE_API_SECRET = os.getenv('VONAGE_API_SECRET')
1311
VONAGE_APPLICATION_ID = os.getenv('VONAGE_APPLICATION_ID')
14-
client = vonage.Client(
15-
key=VONAGE_API_KEY,
16-
secret=VONAGE_API_SECRET
17-
)
1812

19-
response = client.application.get_application(VONAGE_APPLICATION_ID)
13+
from vonage import Auth, Vonage
14+
from vonage_application import ApplicationData
2015

21-
pprint(response)
16+
client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
17+
18+
response: ApplicationData = client.application.get_application(VONAGE_APPLICATION_ID)
19+
20+
print(response)

application/list-applications.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
#!/usr/bin/env python3
22
import os
33
from os.path import join, dirname
4-
from pprint import pprint
54
from dotenv import load_dotenv
6-
import vonage
7-
85

96
dotenv_path = join(dirname(__file__), "../.env")
107
load_dotenv(dotenv_path)
118

129
VONAGE_API_KEY = os.getenv('VONAGE_API_KEY')
1310
VONAGE_API_SECRET = os.getenv('VONAGE_API_SECRET')
1411

15-
client = vonage.Client(
16-
key=VONAGE_API_KEY,
17-
secret=VONAGE_API_SECRET
18-
)
12+
from vonage import Auth, Vonage
13+
from vonage_application import ListApplicationsFilter
1914

20-
response = client.application.list_applications()
15+
client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
16+
17+
applications, next_page = client.application.list_applications(
18+
filter=ListApplicationsFilter(page_size=10, page=1)
19+
)
2120

22-
pprint(response)
21+
print(f'Applications:\n{applications}, \nNext page: {next_page}')

application/update-application.py

Lines changed: 27 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
#!/usr/bin/env python3
22
import os
33
from os.path import join, dirname
4-
from pprint import pprint
54
from dotenv import load_dotenv
6-
import vonage
75

86
dotenv_path = join(dirname(__file__), "../.env")
97
load_dotenv(dotenv_path)
@@ -12,48 +10,33 @@
1210
VONAGE_API_SECRET = os.getenv('VONAGE_API_SECRET')
1311
VONAGE_APPLICATION_ID = os.getenv('VONAGE_APPLICATION_ID')
1412

15-
client = vonage.Client(
16-
key=VONAGE_API_KEY,
17-
secret=VONAGE_API_SECRET
13+
from vonage import Auth, Vonage
14+
from vonage_application import (
15+
ApplicationConfig,
16+
ApplicationData,
17+
ApplicationUrl,
18+
Messages,
19+
MessagesWebhooks,
1820
)
1921

20-
response = client.application.update_application(VONAGE_APPLICATION_ID, {
21-
"name": "Python Update App",
22-
"capabilities": {
23-
"messages": {
24-
"webhooks": {
25-
"inbound_url": {
26-
"address": "https://example.com/webhooks/inbound",
27-
"http_method": "POST"
28-
},
29-
"status_url": {
30-
"address": "https://example.com/webhooks/status",
31-
"http_method": "POST"
32-
}
33-
}
34-
},
35-
"voice": {
36-
"webhooks": {
37-
"answer_url": {
38-
"address": "https://example.com/webhooks/answer",
39-
"http_method": "POST"
40-
},
41-
"event_url": {
42-
"address": "https://example.com/webhooks/event",
43-
"http_method": "POST"
44-
}
45-
}
46-
},
47-
"rtc": {
48-
"webhooks": {
49-
"event_url": {
50-
"address": "https://example.com/webhooks/event",
51-
"http_method": "POST"
52-
}
53-
}
54-
},
55-
"vbc": {}
56-
}
57-
})
22+
client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
5823

59-
pprint(response)
24+
config = ApplicationConfig(
25+
name='My Renamed Application',
26+
capabilities=Messages(
27+
webhooks=MessagesWebhooks(
28+
inbound_url=ApplicationUrl(
29+
address='https://example.com/inbound_new_url', http_method='GET'
30+
),
31+
status_url=ApplicationUrl(
32+
address='https://example.com/status_new_url', http_method='GET'
33+
),
34+
),
35+
authenticate_inbound_media=False,
36+
),
37+
)
38+
response: ApplicationData = client.application.update_application(
39+
id=VONAGE_APPLICATION_ID, config=config
40+
)
41+
42+
print(response)

users/create-user.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import os
2+
from os.path import join, dirname
3+
from dotenv import load_dotenv
4+
5+
# Load the environment
6+
envpath = join(dirname(__file__), "../.env")
7+
load_dotenv(envpath)
8+
9+
VONAGE_APPLICATION_ID = os.getenv('VONAGE_APPLICATION_ID')
10+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.getenv('VONAGE_APPLICATION_PRIVATE_KEY_PATH')
11+
USER_NAME = os.getenv('USER_NAME')
12+
USER_DISPLAY_NAME = os.getenv('USER_DISPLAY_NAME')
13+
14+
from vonage import Auth, Vonage
15+
from vonage_users import Channels, PstnChannel, User
16+
17+
client = Vonage(
18+
Auth(
19+
application_id=VONAGE_APPLICATION_ID,
20+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
21+
)
22+
)
23+
24+
user_options = User(
25+
name=USER_NAME,
26+
display_name=USER_DISPLAY_NAME,
27+
channels=Channels(pstn=[PstnChannel(number=123456)]),
28+
)
29+
user = client.users.create_user(user_options)
30+
31+
print(user)

users/delete-user.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import os
2+
from os.path import join, dirname
3+
from dotenv import load_dotenv
4+
5+
# Load the environment
6+
envpath = join(dirname(__file__), "../.env")
7+
load_dotenv(envpath)
8+
9+
VONAGE_APPLICATION_ID = os.getenv('VONAGE_APPLICATION_ID')
10+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.getenv('VONAGE_APPLICATION_PRIVATE_KEY_PATH')
11+
USER_ID = os.getenv('USER_ID')
12+
13+
from vonage import Auth, Vonage
14+
15+
client = Vonage(
16+
Auth(
17+
application_id=VONAGE_APPLICATION_ID,
18+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
19+
)
20+
)
21+
client.users.delete_user(USER_ID)

users/get-user.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import os
2+
from os.path import join, dirname
3+
from dotenv import load_dotenv
4+
5+
# Load the environment
6+
envpath = join(dirname(__file__), "../.env")
7+
load_dotenv(envpath)
8+
9+
VONAGE_APPLICATION_ID = os.getenv('VONAGE_APPLICATION_ID')
10+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.getenv('VONAGE_APPLICATION_PRIVATE_KEY_PATH')
11+
USER_ID = os.getenv('USER_ID')
12+
13+
from vonage import Auth, Vonage
14+
from vonage_users import User
15+
16+
client = Vonage(
17+
Auth(
18+
application_id=VONAGE_APPLICATION_ID,
19+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
20+
)
21+
)
22+
user: User = client.users.get_user(USER_ID)
23+
24+
print(user)

0 commit comments

Comments
 (0)