From ec0cc38a9253d490bcc323f2aa7b673a2cb2fcdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C4=B1dvan=20Akca?= Date: Wed, 8 May 2024 12:14:32 +0200 Subject: [PATCH] feat(monday): add create board action --- .../apps/monday/actions/create-board/index.js | 70 +++++++++++++++++++ .../backend/src/apps/monday/actions/index.js | 3 + packages/backend/src/apps/monday/index.js | 2 + packages/docs/pages/.vitepress/config.js | 1 + packages/docs/pages/apps/monday/actions.md | 12 ++++ 5 files changed, 88 insertions(+) create mode 100644 packages/backend/src/apps/monday/actions/create-board/index.js create mode 100644 packages/backend/src/apps/monday/actions/index.js create mode 100644 packages/docs/pages/apps/monday/actions.md diff --git a/packages/backend/src/apps/monday/actions/create-board/index.js b/packages/backend/src/apps/monday/actions/create-board/index.js new file mode 100644 index 00000000..2afd0d85 --- /dev/null +++ b/packages/backend/src/apps/monday/actions/create-board/index.js @@ -0,0 +1,70 @@ +import defineAction from '../../../../helpers/define-action.js'; + +export default defineAction({ + name: 'Create board', + key: 'createBoard', + description: 'Creates a new board.', + arguments: [ + { + label: 'Board Name', + key: 'boardName', + type: 'string', + required: true, + description: 'Title for the board.', + variables: true, + }, + { + label: 'Board Kind', + key: 'boardKind', + type: 'dropdown', + required: true, + description: '', + variables: true, + options: [ + { + label: 'Main', + value: 'public', + }, + { + label: 'Private', + value: 'private', + }, + { + label: 'Shareable', + value: 'share', + }, + ], + }, + { + label: 'Template ID', + key: 'templateId', + type: 'string', + required: false, + description: + "When you switch on developer mode, you'll spot the template IDs in your template store. Additionally, you have the option to utilize the Board ID from any board you've saved as a template.", + variables: true, + }, + ], + + async run($) { + const { boardName, boardKind, templateId } = $.step.parameters; + + const body = { + query: `mutation { + create_board (board_name: "${boardName}", board_kind: ${boardKind}${ + templateId ? `, template_id: ${templateId}` : '' + }) { + id + name + board_kind + } + }`, + }; + + const { data } = await $.http.post('/', body); + + $.setActionItem({ + raw: data, + }); + }, +}); diff --git a/packages/backend/src/apps/monday/actions/index.js b/packages/backend/src/apps/monday/actions/index.js new file mode 100644 index 00000000..b0e55486 --- /dev/null +++ b/packages/backend/src/apps/monday/actions/index.js @@ -0,0 +1,3 @@ +import createBoard from './create-board/index.js'; + +export default [createBoard]; diff --git a/packages/backend/src/apps/monday/index.js b/packages/backend/src/apps/monday/index.js index 556f9930..c193e10d 100644 --- a/packages/backend/src/apps/monday/index.js +++ b/packages/backend/src/apps/monday/index.js @@ -2,6 +2,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'; +import actions from './actions/index.js'; export default defineApp({ name: 'Monday', @@ -15,4 +16,5 @@ export default defineApp({ beforeRequest: [addAuthHeader], auth, triggers, + actions, }); diff --git a/packages/docs/pages/.vitepress/config.js b/packages/docs/pages/.vitepress/config.js index c63ccbb6..aada214b 100644 --- a/packages/docs/pages/.vitepress/config.js +++ b/packages/docs/pages/.vitepress/config.js @@ -345,6 +345,7 @@ export default defineConfig({ collapsible: true, collapsed: true, items: [ + { text: 'Actions', link: '/apps/monday/actions' }, { text: 'Triggers', link: '/apps/monday/triggers' }, { text: 'Connection', link: '/apps/monday/connection' }, ], diff --git a/packages/docs/pages/apps/monday/actions.md b/packages/docs/pages/apps/monday/actions.md new file mode 100644 index 00000000..de3ef6ca --- /dev/null +++ b/packages/docs/pages/apps/monday/actions.md @@ -0,0 +1,12 @@ +--- +favicon: /favicons/monday.svg +items: + - name: Create board + desc: Creates a new board. +--- + + + +