Skip to content

Commit 46dba3d

Browse files
vvgrem@gmail.comvvgrem@gmail.com
authored andcommitted
SharePoint API: changes namespace improvements
1 parent 4eaa3c2 commit 46dba3d

23 files changed

+125
-39
lines changed

office365/directory/user.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,3 +96,4 @@ def set_property(self, name, value, persist_changes=True):
9696
self._resource_path = ResourcePath(
9797
value,
9898
self._parent_collection.resource_path)
99+
return self

office365/outlookservices/messageCollection.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ class MessageCollection(ClientObjectCollection):
88
def __init__(self, context, resource_path=None):
99
super(MessageCollection, self).__init__(context, Message, resource_path)
1010

11+
def get(self):
12+
"""
13+
:rtype: MessageCollection
14+
"""
15+
return super(MessageCollection, self).get()
16+
1117
def add_from_json(self, message_creation_information):
1218
"""Create a draft of a new message from JSON"""
1319
message = Message(self.context)

office365/sharepoint/changes/change.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,6 @@
44

55
class Change(BaseEntity):
66

7-
@staticmethod
8-
def resolve_change_type(type_id):
9-
mapping_types = {
10-
}
11-
return mapping_types.get(type_id, Change)
12-
137
@property
148
def change_token(self):
159
"""
@@ -31,9 +25,3 @@ def site_id(self):
3125
Returns the Id of the site of the changed item
3226
"""
3327
return self.properties.get("SiteId", None)
34-
35-
def set_property(self, name, value, persist_changes=True):
36-
super(Change, self).set_property(name, value, persist_changes)
37-
#if name == "ChangeType":
38-
# self.__class__ = self.resolve_change_type(value)
39-
return self

office365/sharepoint/changes/change_alert.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,7 @@
22

33

44
class ChangeAlert(Change):
5-
pass
5+
6+
@property
7+
def alert_id(self):
8+
return self.properties.get("AlertId", None)

office365/sharepoint/changes/change_collection.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,35 @@ class ChangeCollection(ClientObjectCollection):
66

77
def __init__(self, context, resource_path=None):
88
super(ChangeCollection, self).__init__(context, Change, resource_path)
9+
10+
def create_typed_object(self, properties):
11+
self.resolve_change_type(properties)
12+
return super(ChangeCollection, self).create_typed_object(properties)
13+
14+
def resolve_change_type(self, properties):
15+
"""
16+
17+
:type properties: dict
18+
"""
19+
from office365.sharepoint.changes.change_user import ChangeUser
20+
from office365.sharepoint.changes.change_group import ChangeGroup
21+
from office365.sharepoint.changes.change_list import ChangeList
22+
from office365.sharepoint.changes.change_web import ChangeWeb
23+
from office365.sharepoint.changes.change_content_type import ChangeContentType
24+
from office365.sharepoint.changes.change_alert import ChangeAlert
25+
from office365.sharepoint.changes.change_field import ChangeField
26+
27+
if "WebId" in properties:
28+
self._item_type = ChangeWeb
29+
elif "UserId" in properties:
30+
self._item_type = ChangeUser
31+
elif "GroupId" in properties:
32+
self._item_type = ChangeGroup
33+
elif "ListId" in properties:
34+
self._item_type = ChangeList
35+
elif "ContentTypeId" in properties:
36+
self._item_type = ChangeContentType
37+
elif "AlertId" in properties:
38+
self._item_type = ChangeAlert
39+
elif "FieldId" in properties:
40+
self._item_type = ChangeField

office365/sharepoint/changes/change_content_type.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,7 @@
33

44
class ChangeContentType(Change):
55
"""Specifies a change on a content type."""
6-
pass
6+
7+
@property
8+
def content_type_id(self):
9+
return self.properties.get("ContentTypeId", None)

office365/sharepoint/changes/change_field.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,7 @@
22

33

44
class ChangeField(Change):
5-
pass
5+
6+
@property
7+
def field_id(self):
8+
return self.properties.get("FieldId", None)

office365/sharepoint/changes/change_folder.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,11 @@
33

44
class ChangeFolder(Change):
55
"""Specifies a change on a folder not contained in a list or document library."""
6-
pass
6+
7+
@property
8+
def unique_id(self):
9+
return self.properties.get("UniqueId", None)
10+
11+
@property
12+
def web_id(self):
13+
return self.properties.get("WebId", None)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from office365.sharepoint.changes.change import Change
2+
3+
4+
class ChangeGroup(Change):
5+
6+
@property
7+
def group_id(self):
8+
return self.properties.get("GroupId", None)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from office365.sharepoint.changes.change import Change
2+
3+
4+
class ChangeItem(Change):
5+
pass

0 commit comments

Comments
 (0)