diff --git a/packages/backend/src/apps/dropbox/actions/create-folder/index.ts b/packages/backend/src/apps/dropbox/actions/create-folder/index.ts new file mode 100644 index 00000000..181977cc --- /dev/null +++ b/packages/backend/src/apps/dropbox/actions/create-folder/index.ts @@ -0,0 +1,36 @@ +import path from 'node:path'; +import defineAction from '../../../../helpers/define-action'; + +export default defineAction({ + name: 'Create folder', + key: 'createFolder', + description: 'Create a new folder with the given parent folder and folder name', + arguments: [ + { + label: 'Folder', + key: 'parentFolder', + type: 'string' as const, + required: true, + description: 'Enter the parent folder path, like /TextFiles/ or /Documents/Taxes/', + variables: true, + }, + { + label: 'Folder Name', + key: 'folderName', + type: 'string' as const, + required: true, + description: 'Enter the name for the new folder', + variables: true, + }, + ], + + async run($) { + const parentFolder = $.step.parameters.parentFolder as string; + const folderName = $.step.parameters.folderName as string; + const folderPath = path.join(parentFolder, folderName); + + const response = await $.http.post('/2/files/create_folder_v2', { path: folderPath }); + + $.setActionItem({ raw: response.data }); + }, +}); diff --git a/packages/backend/src/apps/dropbox/actions/index.ts b/packages/backend/src/apps/dropbox/actions/index.ts new file mode 100644 index 00000000..e37381b9 --- /dev/null +++ b/packages/backend/src/apps/dropbox/actions/index.ts @@ -0,0 +1,3 @@ +import createFolder from "./create-folder"; + +export default [createFolder]; diff --git a/packages/backend/src/apps/dropbox/index.ts b/packages/backend/src/apps/dropbox/index.ts index 334b70f9..d7bc877b 100644 --- a/packages/backend/src/apps/dropbox/index.ts +++ b/packages/backend/src/apps/dropbox/index.ts @@ -1,6 +1,7 @@ import defineApp from '../../helpers/define-app'; import addAuthHeader from './common/add-auth-header'; import auth from './auth'; +import actions from './actions'; export default defineApp({ name: 'Dropbox', @@ -13,4 +14,5 @@ export default defineApp({ primaryColor: '0061ff', beforeRequest: [addAuthHeader], auth, + actions, });