diff --git a/packages/backend/src/apps/clickup/actions/create-folder/index.js b/packages/backend/src/apps/clickup/actions/create-folder/index.js new file mode 100644 index 00000000..2db2acdb --- /dev/null +++ b/packages/backend/src/apps/clickup/actions/create-folder/index.js @@ -0,0 +1,72 @@ +import defineAction from '../../../../helpers/define-action.js'; + +export default defineAction({ + name: 'Create folder', + key: 'createFolder', + description: 'Creates a new folder.', + arguments: [ + { + label: 'Workspace', + key: 'workspaceId', + type: 'dropdown', + required: true, + description: '', + variables: true, + source: { + type: 'query', + name: 'getDynamicData', + arguments: [ + { + name: 'key', + value: 'listWorkspaces', + }, + ], + }, + }, + { + label: 'Space', + key: 'spaceId', + type: 'dropdown', + required: true, + dependsOn: ['parameters.workspaceId'], + description: '', + variables: true, + source: { + type: 'query', + name: 'getDynamicData', + arguments: [ + { + name: 'key', + value: 'listSpaces', + }, + { + name: 'parameters.workspaceId', + value: '{parameters.workspaceId}', + }, + ], + }, + }, + { + label: 'Folder Name', + key: 'folderName', + type: 'string', + required: true, + description: '', + variables: true, + }, + ], + + async run($) { + const { spaceId, folderName } = $.step.parameters; + + const body = { + name: folderName, + }; + + const { data } = await $.http.post(`/v2/space/${spaceId}/folder`, body); + + $.setActionItem({ + raw: data, + }); + }, +}); diff --git a/packages/backend/src/apps/clickup/actions/index.js b/packages/backend/src/apps/clickup/actions/index.js new file mode 100644 index 00000000..95cba67a --- /dev/null +++ b/packages/backend/src/apps/clickup/actions/index.js @@ -0,0 +1,3 @@ +import createFolder from './create-folder/index.js'; + +export default [createFolder]; diff --git a/packages/backend/src/apps/clickup/index.js b/packages/backend/src/apps/clickup/index.js index 9602bd65..c696949d 100644 --- a/packages/backend/src/apps/clickup/index.js +++ b/packages/backend/src/apps/clickup/index.js @@ -3,6 +3,7 @@ import addAuthHeader from './common/add-auth-header.js'; import auth from './auth/index.js'; import triggers from './triggers/index.js'; import dynamicData from './dynamic-data/index.js'; +import actions from './actions/index.js'; export default defineApp({ name: 'ClickUp', @@ -17,4 +18,5 @@ export default defineApp({ auth, triggers, dynamicData, + actions, }); diff --git a/packages/docs/pages/.vitepress/config.js b/packages/docs/pages/.vitepress/config.js index 52e2fe45..bcf23b18 100644 --- a/packages/docs/pages/.vitepress/config.js +++ b/packages/docs/pages/.vitepress/config.js @@ -82,6 +82,7 @@ export default defineConfig({ collapsible: true, collapsed: true, items: [ + { text: 'Actions', link: '/apps/clickup/actions' }, { text: 'Triggers', link: '/apps/clickup/triggers' }, { text: 'Connection', link: '/apps/clickup/connection' }, ], diff --git a/packages/docs/pages/apps/clickup/actions.md b/packages/docs/pages/apps/clickup/actions.md new file mode 100644 index 00000000..8ea5db1a --- /dev/null +++ b/packages/docs/pages/apps/clickup/actions.md @@ -0,0 +1,12 @@ +--- +favicon: /favicons/clickup.svg +items: + - name: Create folder + desc: Creates a new folder. +--- + + + +