From 176d056aed9e738135f122b3f7e29e70d3b70f79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C4=B1dvan=20Akca?= Date: Fri, 7 Jun 2024 12:30:01 +0200 Subject: [PATCH] feat(asana): add find project action --- .../apps/asana/actions/find-project/index.js | 49 +++++++++++++++++++ .../backend/src/apps/asana/actions/index.js | 3 +- packages/docs/pages/apps/asana/actions.md | 2 + 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 packages/backend/src/apps/asana/actions/find-project/index.js 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. ---