From ff0dd0b415d94a8555abfbde0c0b3e8284d0350b 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 38927bbb..0e690a5c 100644 --- a/packages/docs/pages/.vitepress/config.js +++ b/packages/docs/pages/.vitepress/config.js @@ -229,6 +229,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. +--- + + + +