Skip to content

Commit 3e49d80

Browse files
Serge KamelSerge Kamel
authored andcommitted
feat: add voice messages list functionality
1 parent af22005 commit 3e49d80

2 files changed

Lines changed: 44 additions & 1 deletion

File tree

messagebird/client.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from messagebird.message import Message, MessageList
1414
from messagebird.mms import MMS
1515
from messagebird.voice_webhook import VoiceWebhook, VoiceWebhookList
16-
from messagebird.voicemessage import VoiceMessage
16+
from messagebird.voicemessage import VoiceMessagesList, VoiceMessage
1717
from messagebird.lookup import Lookup
1818
from messagebird.verify import Verify
1919
from messagebird.http_client import HttpClient, ResponseFormat
@@ -241,6 +241,11 @@ def voice_message(self, id):
241241
"Retrieve the information of a specific voice message."
242242
return VoiceMessage().load(self.request('voicemessages/' + str(id)))
243243

244+
def voice_message_list(self, limit=10, offset=0):
245+
"Retrieve the information of a list of voice messages."
246+
query = self._format_query(limit, offset)
247+
return VoiceMessagesList().load(self.request('voicemessages?' + query, 'GET', None))
248+
244249
def voice_message_create(self, recipients, body, params=None):
245250
"""Create a new voice message."""
246251
if params is None:

messagebird/voicemessage.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,44 @@
11
from messagebird.base import Base
2+
from messagebird.base_list import BaseList
23
from messagebird.recipient import Recipient
34

5+
class VoiceMessagesList(BaseList):
6+
def __init__(self):
7+
super(VoiceMessagesList, self).__init__(VoiceMessage)
8+
self.perPage = None
9+
self.currentPage = None
10+
self.pageCount = None
11+
self._pagination = None
12+
13+
@property
14+
def data(self):
15+
return self.items
16+
17+
@property
18+
def pagination(self):
19+
return {
20+
"totalCount": self.totalCount,
21+
"pageCount": self.pageCount,
22+
"currentPage": self.currentPage,
23+
"perPage": self.perPage
24+
}
25+
26+
@pagination.setter
27+
def pagination(self, value):
28+
if isinstance(value, dict):
29+
self.totalCount = value['totalCount']
30+
self.pageCount = value['pageCount']
31+
self.currentPage = value['currentPage']
32+
self.perPage = value['perPage']
33+
self.limit = self.perPage * self.currentPage
34+
self.offset = self.perPage * (self.currentPage - 1)
35+
36+
@data.setter
37+
def data(self, value):
38+
if isinstance(value, list):
39+
self.count = len(value)
40+
self.items = value
41+
442

543
class VoiceMessage(Base):
644
def __init__(self):

0 commit comments

Comments
 (0)