From 2dae8c162decbecbc1554cd5a2f17d23f5278148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C4=B1dvan=20Akca?= Date: Mon, 18 Sep 2023 15:17:05 +0300 Subject: [PATCH] feat(google-calendar): add new calendar trigger --- .../backend/src/apps/google-calendar/index.ts | 2 ++ .../apps/google-calendar/triggers/index.ts | 3 ++ .../triggers/new-calendar/index.ts | 33 +++++++++++++++++++ packages/docs/pages/.vitepress/config.js | 1 + .../pages/apps/google-calendar/triggers.md | 12 +++++++ .../pages/public/favicons/google-calendar.svg | 27 +++++++++++++++ 6 files changed, 78 insertions(+) create mode 100644 packages/backend/src/apps/google-calendar/triggers/index.ts create mode 100644 packages/backend/src/apps/google-calendar/triggers/new-calendar/index.ts create mode 100644 packages/docs/pages/apps/google-calendar/triggers.md create mode 100644 packages/docs/pages/public/favicons/google-calendar.svg diff --git a/packages/backend/src/apps/google-calendar/index.ts b/packages/backend/src/apps/google-calendar/index.ts index 4e42dbd8..89bb0234 100644 --- a/packages/backend/src/apps/google-calendar/index.ts +++ b/packages/backend/src/apps/google-calendar/index.ts @@ -1,6 +1,7 @@ import defineApp from '../../helpers/define-app'; import addAuthHeader from './common/add-auth-header'; import auth from './auth'; +import triggers from './triggers'; export default defineApp({ name: 'Google Calendar', @@ -13,4 +14,5 @@ export default defineApp({ supportsConnections: true, beforeRequest: [addAuthHeader], auth, + triggers, }); diff --git a/packages/backend/src/apps/google-calendar/triggers/index.ts b/packages/backend/src/apps/google-calendar/triggers/index.ts new file mode 100644 index 00000000..c059efef --- /dev/null +++ b/packages/backend/src/apps/google-calendar/triggers/index.ts @@ -0,0 +1,3 @@ +import newCalendar from './new-calendar'; + +export default [newCalendar]; diff --git a/packages/backend/src/apps/google-calendar/triggers/new-calendar/index.ts b/packages/backend/src/apps/google-calendar/triggers/new-calendar/index.ts new file mode 100644 index 00000000..655d067c --- /dev/null +++ b/packages/backend/src/apps/google-calendar/triggers/new-calendar/index.ts @@ -0,0 +1,33 @@ +import defineTrigger from '../../../../helpers/define-trigger'; + +export default defineTrigger({ + name: 'New calendar', + key: 'newCalendar', + pollInterval: 15, + description: 'Triggers when a new calendar is created.', + arguments: [], + + async run($) { + const params: Record = { + pageToken: undefined as unknown as string, + }; + + do { + const { data } = await $.http.get('/v3/users/me/calendarList', { + params, + }); + params.pageToken = data.nextPageToken; + + if (data.items?.length) { + for (const calendar of data.items) { + $.pushTriggerItem({ + raw: calendar, + meta: { + internalId: calendar.id, + }, + }); + } + } + } while (params.pageToken); + }, +}); diff --git a/packages/docs/pages/.vitepress/config.js b/packages/docs/pages/.vitepress/config.js index b484764d..71676c16 100644 --- a/packages/docs/pages/.vitepress/config.js +++ b/packages/docs/pages/.vitepress/config.js @@ -119,6 +119,7 @@ export default defineConfig({ collapsible: true, collapsed: true, items: [ + { text: 'Triggers', link: '/apps/google-calendar/triggers' }, { text: 'Connection', link: '/apps/google-calendar/connection' }, ], }, diff --git a/packages/docs/pages/apps/google-calendar/triggers.md b/packages/docs/pages/apps/google-calendar/triggers.md new file mode 100644 index 00000000..f05a8175 --- /dev/null +++ b/packages/docs/pages/apps/google-calendar/triggers.md @@ -0,0 +1,12 @@ +--- +favicon: /favicons/google-calendar.svg +items: + - name: New calendar + desc: Triggers when a new calendar is created. +--- + + + + diff --git a/packages/docs/pages/public/favicons/google-calendar.svg b/packages/docs/pages/public/favicons/google-calendar.svg new file mode 100644 index 00000000..14b505ab --- /dev/null +++ b/packages/docs/pages/public/favicons/google-calendar.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + +