-
Notifications
You must be signed in to change notification settings - Fork 1
/
server.gs
46 lines (43 loc) · 1.25 KB
/
server.gs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
function doGet(request) {
return HtmlService.createHtmlOutputFromFile("index")
}
function getGoogleTasksData() {
let taskLists = _getAllTaskLists()
let tasks = []
for (const taskList of taskLists) {
tasks.push.apply(tasks, _getAllTasksInTaskList(taskList["id"]))
}
const data = {taskLists, tasks}
console.log(data)
return data
}
function _getAllTaskLists() {
let taskLists = []
let options = {"maxResults": 100, "nextPageToken": undefined}
do {
let response = Tasks.Tasklists.list(options)
taskLists.push.apply(taskLists, response["items"])
options["nextPageToken"] = response["nextPageToken"]
} while (options["nextPageToken"])
return taskLists
}
function _getAllTasksInTaskList(taskListId) {
let taskListTitle = Tasks.Tasklists.get(taskListId)["title"]
let tasks = []
let options = {
"maxResults": 100,
"nextPageToken": undefined,
"showDeleted": true,
"showHidden": true
}
do {
let response = Tasks.Tasks.list(taskListId, options)
let taskItems = response["items"]
for (let task of taskItems) {
task["taskListTitle"] = taskListTitle
}
tasks.push.apply(tasks, taskItems)
options["nextPageToken"] = response["nextPageToken"]
} while (options["nextPageToken"])
return tasks
}