diff --git a/packages/backend/src/apps/google-tasks/triggers/index.js b/packages/backend/src/apps/google-tasks/triggers/index.js new file mode 100644 index 00000000..6b2b05ca --- /dev/null +++ b/packages/backend/src/apps/google-tasks/triggers/index.js @@ -0,0 +1,3 @@ +import newTaskLists from './new-task-lists/index.js'; + +export default [newTaskLists]; diff --git a/packages/backend/src/apps/google-tasks/triggers/new-task-lists/index.js b/packages/backend/src/apps/google-tasks/triggers/new-task-lists/index.js new file mode 100644 index 00000000..3835f28f --- /dev/null +++ b/packages/backend/src/apps/google-tasks/triggers/new-task-lists/index.js @@ -0,0 +1,31 @@ +import defineTrigger from '../../../../helpers/define-trigger.js'; + +export default defineTrigger({ + name: 'New task lists', + key: 'newTaskLists', + pollInterval: 15, + description: 'Triggers when a new task list is created.', + + async run($) { + const params = { + maxResults: 100, + pageToken: undefined, + }; + + do { + const { data } = await $.http.get('/tasks/v1/users/@me/lists'); + params.pageToken = data.nextPageToken; + + if (data.items?.length) { + for (const taskList of data.items.reverse()) { + $.pushTriggerItem({ + raw: taskList, + meta: { + internalId: taskList.etag, + }, + }); + } + } + } while (params.pageToken); + }, +}); diff --git a/packages/docs/pages/.vitepress/config.js b/packages/docs/pages/.vitepress/config.js index 868fa5b2..a37c1ddd 100644 --- a/packages/docs/pages/.vitepress/config.js +++ b/packages/docs/pages/.vitepress/config.js @@ -174,6 +174,7 @@ export default defineConfig({ collapsible: true, collapsed: true, items: [ + { text: 'Triggers', link: '/apps/google-tasks/triggers' }, { text: 'Actions', link: '/apps/google-tasks/actions' }, { text: 'Connection', link: '/apps/google-tasks/connection' }, ], diff --git a/packages/docs/pages/apps/google-tasks/triggers.md b/packages/docs/pages/apps/google-tasks/triggers.md new file mode 100644 index 00000000..b92a3bd8 --- /dev/null +++ b/packages/docs/pages/apps/google-tasks/triggers.md @@ -0,0 +1,12 @@ +--- +favicon: /favicons/google-tasks.svg +items: + - name: New task lists + desc: Triggers when a new task list is created. +--- + + + +