Skip to content

Commit 936ca46

Browse files
committed
Initial Event data model
Create the initial Event data model and add it to the package interface.
1 parent ef0c126 commit 936ca46

File tree

3 files changed

+64
-2
lines changed

3 files changed

+64
-2
lines changed

ciscosparkapi/__init__.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from past.builtins import basestring
1717

1818
from .api.access_tokens import AccessTokensAPI as _AccessTokensAPI
19+
from .api.events import EventsAPI as _EventsAPI
1920
from .api.licenses import LicensesAPI as _LicensesAPI
2021
from .api.memberships import MembershipsAPI as _MembershipsAPI
2122
from .api.messages import MessagesAPI as _MessagesAPI
@@ -31,8 +32,8 @@
3132
ciscosparkapiException,
3233
)
3334
from .models import (
34-
AccessToken, License, Membership, Message, Organization, Person, Role,
35-
Room, Team, TeamMembership, Webhook, WebhookEvent, sparkdata_factory,
35+
AccessToken, Event, License, Membership, Message, Organization, Person,
36+
Role, Room, Team, TeamMembership, Webhook, WebhookEvent, sparkdata_factory,
3637
)
3738
from .restsession import (
3839
DEFAULT_SINGLE_REQUEST_TIMEOUT,
@@ -187,6 +188,7 @@ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL,
187188
self.access_tokens = _AccessTokensAPI(
188189
self.base_url, object_factory, timeout=single_request_timeout
189190
)
191+
self.events = _EventsAPI(self._session, object_factory)
190192

191193
@property
192194
def access_token(self):

ciscosparkapi/models/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from collections import defaultdict
1313

1414
from .access_token import AccessTokenBasicPropertiesMixin
15+
from .event import EventBasicPropertiesMixin
1516
from .license import LicenseBasicPropertiesMixin
1617
from .membership import MembershipBasicPropertiesMixin
1718
from .message import MessageBasicPropertiesMixin
@@ -36,6 +37,10 @@ class AccessToken(SparkData, AccessTokenBasicPropertiesMixin):
3637
"""Cisco Spark Access-Token data model."""
3738

3839

40+
class Event(SparkData, EventBasicPropertiesMixin):
41+
"""Cisco Spark Event data model."""
42+
43+
3944
class License(SparkData, LicenseBasicPropertiesMixin):
4045
"""Cisco Spark License data model."""
4146

@@ -82,6 +87,7 @@ class WebhookEvent(SparkData, WebhookEventBasicPropertiesMixin):
8287
sparkdata_models = defaultdict(
8388
lambda: SparkData,
8489
access_token=AccessToken,
90+
event=Event,
8591
license=License,
8692
membership=Membership,
8793
message=Message,

ciscosparkapi/models/event.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# -*- coding: utf-8 -*-
2+
"""Cisco Spark Event data model."""
3+
4+
5+
from __future__ import (
6+
absolute_import,
7+
division,
8+
print_function,
9+
unicode_literals,
10+
)
11+
12+
from builtins import *
13+
14+
from .sparkdata import SparkData
15+
16+
17+
__author__ = "Chris Lunsford"
18+
__author_email__ = "[email protected]"
19+
__copyright__ = "Copyright (c) 2016-2018 Cisco and/or its affiliates."
20+
__license__ = "MIT"
21+
22+
23+
class EventBasicPropertiesMixin(object):
24+
"""A mixin for :class:`SparkData` classes."""
25+
26+
@property
27+
def id(self):
28+
"""Event ID."""
29+
return self._json_data.get('id')
30+
31+
@property
32+
def resource(self):
33+
"""The event resource type (`messagess`, `memberships`)."""
34+
return self._json_data.get('resource')
35+
36+
@property
37+
def type(self):
38+
"""The event type (`created`, `updated`, `deleted`)."""
39+
return self._json_data.get('type')
40+
41+
@property
42+
def actorId(self):
43+
"""The ID of the person that performed this event."""
44+
return self._json_data.get('actorId')
45+
46+
@property
47+
def created(self):
48+
"""The date and time the event was performed."""
49+
return self._json_data.get('created')
50+
51+
@property
52+
def data(self):
53+
"""The event resource data."""
54+
return SparkData(self._json_data.get('data'))

0 commit comments

Comments
 (0)