Skip to content

Commit 40761dc

Browse files
committed
added untracked files
1 parent 34c9c21 commit 40761dc

File tree

4 files changed

+126
-0
lines changed

4 files changed

+126
-0
lines changed

examples/call.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/usr/bin/env python
2+
3+
import sys, os
4+
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
5+
6+
import messagebird
7+
8+
#ACCESS_KEY = ''
9+
#CALL_ID = ''
10+
11+
try:
12+
ACCESS_KEY
13+
except NameError:
14+
print('You need to set an ACCESS_KEY constant in this file')
15+
sys.exit(1)
16+
17+
try:
18+
CALL_ID
19+
except NameError:
20+
print('You need to set a CALL_ID constant in this file')
21+
sys.exit(1)
22+
23+
try:
24+
# Create a MessageBird client with the specified ACCESS_KEY.
25+
client = messagebird.Client(ACCESS_KEY)
26+
27+
# Fetch the Message object for the specified MESSAGE_ID.
28+
call = client.call(CALL_ID)
29+
30+
# Print the object information.
31+
print('\nThe following information was returned as a Message object:\n')
32+
print(' id : %s' % call.data.id)
33+
print(' status : %s' % call.data.status)
34+
print(' source : %s' % call.data.source)
35+
print(' destination : %s' % call.data.destination)
36+
print(' createdAt : %s' % call.data.createdAt)
37+
print(' updatedAt : %s' % call.data.updatedAt)
38+
print(' endedAt : %s' % call.data.endedAt)
39+
40+
except messagebird.client.ErrorException as e:
41+
print('\nAn error occured while requesting a Message object:\n')
42+
43+
for error in e.errors:
44+
print(' code : %d' % error.code)
45+
print(' description : %s' % error.description)
46+
print(' parameter : %s\n' % error.parameter)

messagebird/call.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from messagebird.base import Base
2+
from messagebird.call_data import CallData
3+
4+
CALL_STATUS_STARTING = "starting"
5+
CALL_STATUS_ONGOING = "ongoing"
6+
CALL_STATUS_ENDED = "ended"
7+
8+
class Call(Base):
9+
10+
def __init__(self):
11+
self.id = None
12+
self._data = None
13+
14+
15+
@property
16+
def data(self):
17+
return self._data
18+
19+
@data.setter
20+
def data(self, value):
21+
self._data = CallData().load(value[0])

messagebird/call_data.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
from messagebird.base import Base
2+
3+
class CallData(Base):
4+
5+
def __init__(self):
6+
self.id = None
7+
self.status = None
8+
self.source = None
9+
self.destination = None
10+
self._createdAt = None
11+
self._updatedAt = None
12+
self._endedAt = None
13+
14+
15+
@property
16+
def updatedAt(self):
17+
return self._updatedAt
18+
19+
@updatedAt.setter
20+
def updatedAt(self, value):
21+
self._updatedAt = self.value_to_time(value, '%Y-%m-%dT%H:%M:%SZ')
22+
23+
@property
24+
def createdAt(self):
25+
return self._createdAt
26+
27+
@createdAt.setter
28+
def createdAt(self, value):
29+
self._createdAt = self.value_to_time(value, '%Y-%m-%dT%H:%M:%SZ')
30+
31+
@property
32+
def endedAt(self):
33+
return self._endedAt
34+
35+
@endedAt.setter
36+
def endedAt(self, value):
37+
self._endedAt = self.value_to_time(value, '%Y-%m-%dT%H:%M:%SZ')

tests/test_call.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import unittest
2+
from messagebird import Client, ErrorException
3+
4+
try:
5+
from unittest.mock import Mock
6+
except ImportError:
7+
# mock was added to unittest in Python 3.3, but was an external library
8+
# before.
9+
from mock import Mock
10+
11+
12+
class TestCall(unittest.TestCase):
13+
14+
def test_call(self):
15+
http_client = Mock()
16+
http_client.request.return_value = '{"data":[{"id":"call-id","status":"ended","source":"16479311111","destination":"1416555555","createdAt":"2019-08-06T13:17:06Z","updatedAt":"2019-08-06T13:17:39Z","endedAt":"2019-08-06T13:17:39Z"}],"_links":{"legs":"/calls/66bd9f08-a8af-40fe-a830-652d8dabc057/legs","self":"/calls/66bd9f08-a8af-40fe-a830-652d8bca357"},"pagination":{"totalCount":0,"pageCount":0,"currentPage":0,"perPage":0}}'
17+
18+
call = Client('', http_client).call('call-id')
19+
20+
http_client.request.assert_called_once_with('calls/call-id', 'GET', None)
21+
22+
self.assertEqual('ended', call.data.status)

0 commit comments

Comments
 (0)