Skip to content

Commit f0e2a56

Browse files
authored
Merge pull request #1206 from RogerSelwyn/tasks_delta_endpoint
Add ability to call /todo/lists/delta endpoint
2 parents e6281ca + de6582e commit f0e2a56

File tree

1 file changed

+34
-12
lines changed

1 file changed

+34
-12
lines changed

O365/tasks.py

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
CONST_GET_TASK = "get_task"
2121
CONST_GET_TASKS = "get_tasks"
2222
CONST_ROOT_FOLDERS = "root_folders"
23+
CONST_ROOT_FOLDERS_DELTA = "root_folders_delta"
2324
CONST_TASK = "task"
2425
CONST_TASK_FOLDER = "task_folder"
2526

@@ -993,6 +994,7 @@ class ToDo(ApiComponent):
993994

994995
_endpoints = {
995996
CONST_ROOT_FOLDERS: "/todo/lists",
997+
CONST_ROOT_FOLDERS_DELTA: "/todo/lists/delta",
996998
CONST_GET_FOLDER: "/todo/lists/{id}",
997999
}
9981000

@@ -1032,18 +1034,8 @@ def __repr__(self):
10321034
"""Representation of the ToDo via the Graph api as."""
10331035
return "Microsoft To-Do"
10341036

1035-
def list_folders(self, query=None, limit=None):
1036-
"""Return a list of folders.
1037-
1038-
To use query an order_by check the OData specification here:
1039-
https://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/
1040-
part2-url-conventions/odata-v4.0-errata03-os-part2-url-conventions
1041-
-complete.html
1042-
:param query: the query string or object to list folders
1043-
:param int limit: max no. of folders to get. Over 999 uses batch.
1044-
:rtype: list[Folder]
1045-
"""
1046-
url = self.build_url(self._endpoints.get(CONST_ROOT_FOLDERS))
1037+
def _list_folders_with_url(self, url, query=None, limit=None):
1038+
"""Return a list of folders using the provided url."""
10471039

10481040
params = {}
10491041
if limit:
@@ -1066,6 +1058,36 @@ def list_folders(self, query=None, limit=None):
10661058
for x in data.get("value", [])
10671059
]
10681060

1061+
def list_folders(self, query=None, limit=None):
1062+
"""Return a list of folders.
1063+
1064+
To use query an order_by check the OData specification here:
1065+
https://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/
1066+
part2-url-conventions/odata-v4.0-errata03-os-part2-url-conventions
1067+
-complete.html
1068+
:param query: the query string or object to list folders
1069+
:param int limit: max no. of folders to get. Over 999 uses batch.
1070+
:rtype: list[Folder]
1071+
"""
1072+
url = self.build_url(self._endpoints.get(CONST_ROOT_FOLDERS))
1073+
1074+
return self._list_folders_with_url(url, query, limit)
1075+
1076+
def list_folders_delta(self, query=None, limit=None):
1077+
"""Return a list of folders using the delta endpoint.
1078+
1079+
To use query an order_by check the OData specification here:
1080+
https://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/
1081+
part2-url-conventions/odata-v4.0-errata03-os-part2-url-conventions
1082+
-complete.html
1083+
:param query: the query string or object to list folders
1084+
:param int limit: max no. of folders to get. Over 999 uses batch.
1085+
:rtype: list[Folder]
1086+
"""
1087+
url = self.build_url(self._endpoints.get(CONST_ROOT_FOLDERS_DELTA))
1088+
1089+
return self._list_folders_with_url(url, query, limit)
1090+
10691091
def new_folder(self, folder_name):
10701092
"""Create a new folder.
10711093

0 commit comments

Comments
 (0)