From f0b5d85a7a65edadd80e0ac2bc3b5ad5e930bb68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C4=B1dvan=20Akca?= Date: Fri, 3 May 2024 14:46:07 +0200 Subject: [PATCH] feat(monday): add new boards trigger --- packages/backend/src/apps/monday/index.js | 2 ++ .../backend/src/apps/monday/triggers/index.js | 3 ++ .../apps/monday/triggers/new-boards/index.js | 29 +++++++++++++++++++ packages/docs/pages/.vitepress/config.js | 5 +++- packages/docs/pages/apps/monday/triggers.md | 12 ++++++++ packages/docs/pages/guide/available-apps.md | 1 + 6 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 packages/backend/src/apps/monday/triggers/index.js create mode 100644 packages/backend/src/apps/monday/triggers/new-boards/index.js create mode 100644 packages/docs/pages/apps/monday/triggers.md diff --git a/packages/backend/src/apps/monday/index.js b/packages/backend/src/apps/monday/index.js index efed1eae..556f9930 100644 --- a/packages/backend/src/apps/monday/index.js +++ b/packages/backend/src/apps/monday/index.js @@ -1,6 +1,7 @@ import defineApp from '../../helpers/define-app.js'; import addAuthHeader from './common/add-auth-header.js'; import auth from './auth/index.js'; +import triggers from './triggers/index.js'; export default defineApp({ name: 'Monday', @@ -13,4 +14,5 @@ export default defineApp({ primaryColor: 'F62B54', beforeRequest: [addAuthHeader], auth, + triggers, }); diff --git a/packages/backend/src/apps/monday/triggers/index.js b/packages/backend/src/apps/monday/triggers/index.js new file mode 100644 index 00000000..d03846d1 --- /dev/null +++ b/packages/backend/src/apps/monday/triggers/index.js @@ -0,0 +1,3 @@ +import newBoards from './new-boards/index.js'; + +export default [newBoards]; diff --git a/packages/backend/src/apps/monday/triggers/new-boards/index.js b/packages/backend/src/apps/monday/triggers/new-boards/index.js new file mode 100644 index 00000000..8aa974be --- /dev/null +++ b/packages/backend/src/apps/monday/triggers/new-boards/index.js @@ -0,0 +1,29 @@ +import defineTrigger from '../../../../helpers/define-trigger.js'; + +export default defineTrigger({ + name: 'New board', + key: 'newBoard', + pollInterval: 15, + description: 'Triggers when a new board is created.', + + async run($) { + const body = { + query: 'query { boards { id, name } }', + }; + + const { data } = await $.http.post('/', body); + + if (!data?.data?.boards?.length) { + return; + } + + for (const board of data.data.boards) { + $.pushTriggerItem({ + raw: board, + meta: { + internalId: board.id, + }, + }); + } + }, +}); diff --git a/packages/docs/pages/.vitepress/config.js b/packages/docs/pages/.vitepress/config.js index e3b2afec..38927bbb 100644 --- a/packages/docs/pages/.vitepress/config.js +++ b/packages/docs/pages/.vitepress/config.js @@ -228,7 +228,10 @@ export default defineConfig({ text: 'Monday', collapsible: true, collapsed: true, - items: [{ text: 'Connection', link: '/apps/monday/connection' }], + items: [ + { text: 'Triggers', link: '/apps/monday/triggers' }, + { text: 'Connection', link: '/apps/monday/connection' }, + ], }, { text: 'Notion', diff --git a/packages/docs/pages/apps/monday/triggers.md b/packages/docs/pages/apps/monday/triggers.md new file mode 100644 index 00000000..b33d1451 --- /dev/null +++ b/packages/docs/pages/apps/monday/triggers.md @@ -0,0 +1,12 @@ +--- +favicon: /favicons/monday.svg +items: + - name: New board + desc: Triggers when a new board is created. +--- + + + + diff --git a/packages/docs/pages/guide/available-apps.md b/packages/docs/pages/guide/available-apps.md index d0f7e7ee..26080a8c 100644 --- a/packages/docs/pages/guide/available-apps.md +++ b/packages/docs/pages/guide/available-apps.md @@ -23,6 +23,7 @@ The following integrations are currently supported by Automatisch. - [Invoice Ninja](/apps/invoice-ninja/triggers) - [Mattermost](/apps/mattermost/actions) - [Miro](/apps/miro/actions) +- [Monday](/apps/monday/triggers) - [Notion](/apps/notion/triggers) - [Ntfy](/apps/ntfy/actions) - [Odoo](/apps/odoo/actions)