diff --git a/packages/backend/src/apps/asana/actions/find-project/index.js b/packages/backend/src/apps/asana/actions/find-project/index.js new file mode 100644 index 00000000..79589f8f --- /dev/null +++ b/packages/backend/src/apps/asana/actions/find-project/index.js @@ -0,0 +1,49 @@ +import defineAction from '../../../../helpers/define-action.js'; + +export default defineAction({ + name: 'Find project', + key: 'findProject', + description: 'Finds an existing project.', + arguments: [ + { + label: 'Workspace', + key: 'workspaceId', + type: 'dropdown', + required: true, + description: '', + variables: true, + source: { + type: 'query', + name: 'getDynamicData', + arguments: [ + { + name: 'key', + value: 'listWorkspaces', + }, + ], + }, + }, + { + label: 'Name', + key: 'name', + type: 'string', + required: true, + description: '', + variables: true, + }, + ], + + async run($) { + const { workspaceId, name } = $.step.parameters; + + const { data } = await $.http.get( + `/1.0/workspaces/${workspaceId}/projects` + ); + + const project = data.data.find((project) => project.name === name); + + $.setActionItem({ + raw: project, + }); + }, +}); diff --git a/packages/backend/src/apps/asana/actions/index.js b/packages/backend/src/apps/asana/actions/index.js index c0913479..984af85a 100644 --- a/packages/backend/src/apps/asana/actions/index.js +++ b/packages/backend/src/apps/asana/actions/index.js @@ -1,4 +1,5 @@ import createProject from './create-project/index.js'; import createTask from './create-task/index.js'; +import findProject from './find-project/index.js'; -export default [createProject, createTask]; +export default [createProject, createTask, findProject]; diff --git a/packages/docs/pages/apps/asana/actions.md b/packages/docs/pages/apps/asana/actions.md index 1533f915..c4e6b174 100644 --- a/packages/docs/pages/apps/asana/actions.md +++ b/packages/docs/pages/apps/asana/actions.md @@ -5,6 +5,8 @@ items: desc: Creates a new project. - name: Create task desc: Creates a new task. + - name: Find project + desc: Finds an existing project. ---