Skip to content

Commit 93237b8

Browse files
authored
Merge pull request #7 from Bandwidth/tndetails-patch
SWI-6056 Update tndetails.py to include messaging and location details
2 parents 5221597 + e2d8726 commit 93237b8

File tree

7 files changed

+107
-0
lines changed

7 files changed

+107
-0
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/usr/bin/env python
2+
3+
from bandwidth_numbers.models.base_resource import BaseData
4+
from bandwidth_numbers.models.maps.messaging_settings import MessagingSettingsMap
5+
6+
7+
class MessagingSettingsData(MessagingSettingsMap, BaseData):
8+
pass

bandwidth_numbers/models/data/tndetails.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
#!/usr/bin/env python
2+
from traceback import print_last
23

34
from bandwidth_numbers.models.base_resource import BaseData
45
from bandwidth_numbers.models.data.features import Features
6+
from bandwidth_numbers.models.data.site import SiteData
7+
from bandwidth_numbers.models.data.sip_peer import SipPeerData
58
from bandwidth_numbers.models.maps.tndetails import TndetailsMap
9+
from bandwidth_numbers.models.data.messaging_settings import MessagingSettingsData
10+
611

712
class TndetailsData(TndetailsMap, BaseData):
813

@@ -13,6 +18,28 @@ def id(self):
1318
def id(self, id):
1419
self.full_number = id
1520

21+
@property
22+
def site(self):
23+
return self.site
24+
@site.setter
25+
def site(self, site):
26+
self.site = site
27+
28+
@property
29+
def sip_peer(self):
30+
return self._sip_peer
31+
@sip_peer.setter
32+
def sip_peer(self, sip_peer):
33+
self._sip_peer = sip_peer
34+
35+
36+
@property
37+
def messaging_settings(self):
38+
return self.messaging_settings
39+
@messaging_settings.setter
40+
def messaging_settings(self, messaging_settings):
41+
self.messaging_settings = messaging_settings
42+
1643
@property
1744
def last_modified_date(self):
1845
return self.last_modified
@@ -22,3 +49,10 @@ def last_modified_date(self, last_modified_date):
2249

2350
def __init__(self):
2451
self.features = Features()
52+
self.site = SiteData()
53+
self.sip_peer = SipPeerData()
54+
self.messaging_settings = MessagingSettingsData()
55+
56+
@messaging_settings.setter
57+
def messaging_settings(self, value):
58+
self._messaging_settings = value
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/usr/bin/env python
2+
3+
from bandwidth_numbers.models.maps.base_map import BaseMap
4+
5+
class MessagingSettingsMap(BaseMap):
6+
sms_enabled = None
7+
campaign_id = None
8+
message_class = None
9+
campaign_fully_provisioned = None
10+
a2p_state = None

bandwidth_numbers/models/maps/tndetails.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from bandwidth_numbers.models.maps.base_map import BaseMap
44

5+
56
class TndetailsMap(BaseMap):
67

78
account_id = None
@@ -16,3 +17,7 @@ class TndetailsMap(BaseMap):
1617
tier = None
1718
vendor_id = None
1819
vendor_name = None
20+
site = None
21+
sip_peer = None
22+
service_types = None
23+
messaging_settings = None
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env python
2+
3+
from __future__ import division, absolute_import, print_function
4+
5+
from bandwidth_numbers.models.base_resource import BaseResource
6+
from bandwidth_numbers.models.data.messaging_settings import MessagingSettingsData
7+
8+
XML_NAME_MESSAGING_SETTINGS = "MessagingSettings"
9+
10+
class MessagingSettings(BaseResource, MessagingSettingsData):
11+
pass

bandwidth_numbers/models/tndetails.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55

66
from bandwidth_numbers.models.base_resource import BaseResource
77
from bandwidth_numbers.models.data.tndetails import TndetailsData
8+
from bandwidth_numbers.models.messaging_settings import MessagingSettings
9+
from bandwidth_numbers.models.site import Site
10+
from bandwidth_numbers.models.sip_peer import SipPeer
811

912
XML_NAME_TNDETAILS = "TelephoneNumberDetails"
1013
XPATH_TNDETAILS = "/tndetails"
@@ -16,9 +19,34 @@ class Tndetails(BaseResource, TndetailsData):
1619
_node_name = XML_NAME_TNDETAILS
1720
_xpath = XPATH_TNDETAILS
1821

22+
@property
23+
def site(self):
24+
return self._site
25+
@site.setter
26+
def site(self, site):
27+
self._site = site
28+
29+
@property
30+
def sip_peer(self):
31+
return self._sip_peer
32+
@sip_peer.setter
33+
def sip_peer(self, sip_peer):
34+
self._sip_peer = sip_peer
35+
36+
@property
37+
def messaging_settings(self):
38+
return self._messaging_settings
39+
@messaging_settings.setter
40+
def messaging_settings(self, messaging_settings):
41+
self._messaging_settings = messaging_settings
42+
1943
def __init__(self, parent=None, client=None):
2044
super().__init__(parent, client)
2145
TndetailsData.__init__(self)
46+
self._site = Site(self, client)
47+
self._sip_peer = SipPeer(self, client)
48+
self._messaging_settings = MessagingSettings(self, client)
49+
2250

2351
def get(self):
2452
return self._get_data()

tests/test_tns.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,10 @@
104104
b"<VendorId>49</VendorId><VendorName>Bandwidth CLEC</VendorName>"
105105
b"<RateCenter>JERSEYCITY</RateCenter><Status>Inservice</Status>"
106106
b"<AccountId>14</AccountId>"
107+
b"<Site><Id>135927</Id><Name>PROD</Name></Site>"
108+
b"<ServiceTypes><ServiceType>Voice</ServiceType><ServiceType>Messaging</ServiceType></ServiceTypes>"
109+
b"<MessagingSettings><SmsEnabled>true</SmsEnabled><CampaignId>CU9B04M</CampaignId><MessageClass>Campaign-E</MessageClass><CampaignFullyProvisioned>true</CampaignFullyProvisioned><A2pState>overridden</A2pState><AssignedNnRoute><Nnid>103775</Nnid><Name>BW A2P - SVR - E151 (103775)</Name></AssignedNnRoute></MessagingSettings>"
110+
b"<SipPeer><PeerId>971438</PeerId><PeerName>Uptravi</PeerName><IsDefaultPeer>false</IsDefaultPeer></SipPeer>"
107111
b"<LastModified>2014-07-30T11:29:37.000Z</LastModified><Features>"
108112
b"<E911><Status>Success</Status></E911><Lidb>"
109113
b"<Status>Pending</Status>"
@@ -305,6 +309,13 @@ def test_tndetails(self):
305309
self.assertEqual(tnd.account_id, "14")
306310
self.assertEqual(tnd.last_modified, "2014-07-30T11:29:37.000Z")
307311
self.assertEqual(tnd.features.lidb.status, "Pending")
312+
self.assertEqual(tnd.messaging_settings.sms_enabled, 'true')
313+
self.assertEqual(tnd.messaging_settings.campaign_id, 'CU9B04M')
314+
self.assertEqual(tnd.messaging_settings.message_class, 'Campaign-E')
315+
self.assertEqual(tnd.site.id, '135927')
316+
self.assertEqual(tnd.site.name, 'PROD')
317+
self.assertEqual(tnd.sip_peer.peer_id, '971438')
318+
self.assertEqual(tnd.sip_peer.peer_name, 'Uptravi')
308319

309320
def test_tnreservation(self):
310321

0 commit comments

Comments
 (0)