diff --git a/packages/backend/src/apps/asana/actions/find-task-in-project/index.js b/packages/backend/src/apps/asana/actions/find-task-in-project/index.js new file mode 100644 index 00000000..28aeccb1 --- /dev/null +++ b/packages/backend/src/apps/asana/actions/find-task-in-project/index.js @@ -0,0 +1,69 @@ +import defineAction from '../../../../helpers/define-action.js'; + +export default defineAction({ + name: 'Find task in a project', + key: 'findTaskInProject', + description: 'Finds an existing task within a project.', + arguments: [ + { + label: 'Workspace', + key: 'workspaceId', + type: 'dropdown', + required: true, + description: '', + variables: true, + source: { + type: 'query', + name: 'getDynamicData', + arguments: [ + { + name: 'key', + value: 'listWorkspaces', + }, + ], + }, + }, + { + label: 'Project', + key: 'projectId', + type: 'dropdown', + required: true, + description: '', + variables: true, + source: { + type: 'query', + name: 'getDynamicData', + arguments: [ + { + name: 'key', + value: 'listProjects', + }, + { + name: 'parameters.workspaceId', + value: '{parameters.workspaceId}', + }, + ], + }, + }, + { + label: 'Task Name', + key: 'taskName', + type: 'string', + required: true, + description: '', + variables: true, + }, + ], + + async run($) { + const { projectId, taskName } = $.step.parameters; + + const { data } = await $.http.get(`/1.0/projects/${projectId}/tasks`); + + const task = data.data.find((task) => task.name === taskName); + + $.setActionItem({ + raw: task, + }); + }, +}); diff --git a/packages/backend/src/apps/asana/actions/index.js b/packages/backend/src/apps/asana/actions/index.js index 984af85a..25b8a908 100644 --- a/packages/backend/src/apps/asana/actions/index.js +++ b/packages/backend/src/apps/asana/actions/index.js @@ -1,5 +1,6 @@ import createProject from './create-project/index.js'; import createTask from './create-task/index.js'; import findProject from './find-project/index.js'; +import findTaskInProject from './find-task-in-project/index.js'; -export default [createProject, createTask, findProject]; +export default [createProject, createTask, findProject, findTaskInProject]; diff --git a/packages/docs/pages/apps/asana/actions.md b/packages/docs/pages/apps/asana/actions.md index c4e6b174..31b86f54 100644 --- a/packages/docs/pages/apps/asana/actions.md +++ b/packages/docs/pages/apps/asana/actions.md @@ -7,6 +7,8 @@ items: desc: Creates a new task. - name: Find project desc: Finds an existing project. + - name: Find task in a project + desc: Finds an existing task within a project. ---