Skip to content

Commit 540c660

Browse files
committed
Add WebexTeamDateTime and update model properties
Dates and times returned by Webex Teams should be modeled using Python's native datetime class - or a derivative thereof. :)
1 parent 686bbc4 commit 540c660

File tree

14 files changed

+75
-14
lines changed

14 files changed

+75
-14
lines changed

tests/api/test_events.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,13 @@ def test_list_events_by_actor_id(api, events):
8282

8383

8484
def test_list_events_from(api, events):
85-
datetime_string = min(event.created for event in events)
85+
datetime_string = str(min(event.created for event in events))
8686
from_events = list(api.events.list(_from=datetime_string)[:5])
8787
assert are_valid_events(from_events)
8888

8989

9090
def test_list_events_to(api, events):
91-
datetime_string = max(event.created for event in events)
91+
datetime_string = str(max(event.created for event in events))
9292
to_events = list(api.events.list(to=datetime_string)[:5])
9393
assert are_valid_events(to_events)
9494

tests/api/test_messages.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def test_list_messages_before_datetime(api, group_room,
163163
group_room_markdown_message):
164164
message_list = list(api.messages.list(
165165
roomId=group_room.id,
166-
before=group_room_markdown_message.created,
166+
before=str(group_room_markdown_message.created),
167167
))
168168
assert len(message_list) >= 1
169169
assert are_valid_messages(message_list)

webexteamssdk/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
immutable_data_factory,
4747
)
4848
from .models.simple import SimpleDataModel, simple_data_factory
49+
from .utils import WebexTeamsDateTime
4950

5051

5152
__version__ = get_versions()['version']

webexteamssdk/config.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,5 @@
3636
'SPARK_ACCESS_TOKEN',
3737
'CISCO_SPARK_ACCESS_TOKEN',
3838
]
39+
40+
WEBEX_TEAMS_DATETIME_FORMAT = "%Y-%m-%dT%H:%M:%S.%fZ"

webexteamssdk/models/mixins/event.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
from builtins import *
3434

35+
from webexteamssdk.utils import WebexTeamsDateTime
36+
3537

3638
class EventBasicPropertiesMixin(object):
3739
"""Event basic properties."""
@@ -59,4 +61,4 @@ def actorId(self):
5961
@property
6062
def created(self):
6163
"""The date and time the event was performed."""
62-
return self._json_data.get('created')
64+
return WebexTeamsDateTime.strptime(self._json_data.get('created'))

webexteamssdk/models/mixins/membership.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
from builtins import *
3434

35+
from webexteamssdk.utils import WebexTeamsDateTime
36+
3537

3638
class MembershipBasicPropertiesMixin(object):
3739
"""Membership basic properties."""
@@ -79,4 +81,4 @@ def isMonitor(self):
7981
@property
8082
def created(self):
8183
"""The date and time the membership was created."""
82-
return self._json_data.get('created')
84+
return WebexTeamsDateTime.strptime(self._json_data.get('created'))

webexteamssdk/models/mixins/message.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
from builtins import *
3434

35+
from webexteamssdk.utils import WebexTeamsDateTime
36+
3537

3638
class MessageBasicPropertiesMixin(object):
3739
"""Message basic properties."""
@@ -89,4 +91,4 @@ def mentionedPeople(self):
8991
@property
9092
def created(self):
9193
"""The date and time the message was created."""
92-
return self._json_data.get('created')
94+
return WebexTeamsDateTime.strptime(self._json_data.get('created'))

webexteamssdk/models/mixins/organization.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
from builtins import *
3434

35+
from webexteamssdk.utils import WebexTeamsDateTime
36+
3537

3638
class OrganizationBasicPropertiesMixin(object):
3739
"""Organization basic properties."""
@@ -49,4 +51,4 @@ def displayName(self):
4951
@property
5052
def created(self):
5153
"""Creation date and time in ISO8601 format."""
52-
return self._json_data.get('created')
54+
return WebexTeamsDateTime.strptime(self._json_data.get('created'))

webexteamssdk/models/mixins/person.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
from builtins import *
3434

35+
from webexteamssdk.utils import WebexTeamsDateTime
36+
3537

3638
class PersonBasicPropertiesMixin(object):
3739
"""Person basic properties."""
@@ -94,7 +96,7 @@ def licenses(self):
9496
@property
9597
def created(self):
9698
"""The date and time the person was created."""
97-
return self._json_data.get('created')
99+
return WebexTeamsDateTime.strptime(self._json_data.get('created'))
98100

99101
@property
100102
def status(self):
@@ -104,7 +106,7 @@ def status(self):
104106
@property
105107
def lastActivity(self):
106108
"""The date and time of the person's last activity."""
107-
return self._json_data.get('lastActivity')
109+
return WebexTeamsDateTime.strptime(self._json_data.get('lastActivity'))
108110

109111
@property
110112
def invitePending(self):

webexteamssdk/models/mixins/room.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
from builtins import *
3434

35+
from webexteamssdk.utils import WebexTeamsDateTime
36+
3537

3638
class RoomBasicPropertiesMixin(object):
3739
"""Room basic properties."""
@@ -59,12 +61,12 @@ def isLocked(self):
5961
@property
6062
def lastActivity(self):
6163
"""The date and time when the room was last active."""
62-
return self._json_data.get('lastActivity')
64+
return WebexTeamsDateTime.strptime(self._json_data.get('lastActivity'))
6365

6466
@property
6567
def created(self):
6668
"""The date and time when the room was created."""
67-
return self._json_data.get('created')
69+
return WebexTeamsDateTime.strptime(self._json_data.get('created'))
6870

6971
@property
7072
def creatorId(self):

0 commit comments

Comments
 (0)