diff --git a/packages/backend/src/apps/clickup/actions/create-list/index.js b/packages/backend/src/apps/clickup/actions/create-list/index.js new file mode 100644 index 00000000..a6b1ef59 --- /dev/null +++ b/packages/backend/src/apps/clickup/actions/create-list/index.js @@ -0,0 +1,129 @@ +import defineAction from '../../../../helpers/define-action.js'; + +export default defineAction({ + name: 'Create list', + key: 'createList', + description: 'Creates a new list.', + 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', + key: 'folderId', + type: 'dropdown', + required: true, + dependsOn: ['parameters.spaceId'], + description: '', + variables: true, + source: { + type: 'query', + name: 'getDynamicData', + arguments: [ + { + name: 'key', + value: 'listFolders', + }, + { + name: 'parameters.spaceId', + value: '{parameters.spaceId}', + }, + ], + }, + }, + { + label: 'List Name', + key: 'listName', + type: 'string', + required: true, + description: '', + variables: true, + }, + { + label: 'List Info', + key: 'listInfo', + type: 'string', + required: false, + description: '', + variables: true, + }, + { + label: 'Priority', + key: 'priority', + type: 'dropdown', + required: false, + description: '', + variables: true, + options: [ + { label: 'Urgent', value: 1 }, + { label: 'High', value: 2 }, + { label: 'Normal', value: 3 }, + { label: 'Low', value: 4 }, + ], + }, + { + label: 'Due Date', + key: 'dueDate', + type: 'string', + required: false, + description: 'format: integer ', + variables: true, + }, + ], + + async run($) { + const { folderId, listName, listInfo, priority, dueDate } = + $.step.parameters; + + const body = { + name: listName, + content: listInfo, + due_date: dueDate, + priority, + }; + + const { data } = await $.http.post(`/v2/folder/${folderId}/list`, body); + + $.setActionItem({ + raw: data, + }); + }, +}); diff --git a/packages/backend/src/apps/clickup/actions/index.js b/packages/backend/src/apps/clickup/actions/index.js index 95cba67a..0c286aae 100644 --- a/packages/backend/src/apps/clickup/actions/index.js +++ b/packages/backend/src/apps/clickup/actions/index.js @@ -1,3 +1,4 @@ import createFolder from './create-folder/index.js'; +import createList from './create-list/index.js'; -export default [createFolder]; +export default [createFolder, createList]; diff --git a/packages/docs/pages/apps/clickup/actions.md b/packages/docs/pages/apps/clickup/actions.md index 8ea5db1a..eaebe22e 100644 --- a/packages/docs/pages/apps/clickup/actions.md +++ b/packages/docs/pages/apps/clickup/actions.md @@ -3,6 +3,8 @@ favicon: /favicons/clickup.svg items: - name: Create folder desc: Creates a new folder. + - name: Create list + desc: Creates a new list. ---