Compare commits
	
		
			2 Commits
		
	
	
		
			dependabot
			...
			AUT-786
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 64755695a1 | ||
|   | 51e96b832d | 
| @@ -0,0 +1,82 @@ | |||||||
|  | import path from 'node:path'; | ||||||
|  | import defineAction from '../../../../helpers/define-action.js'; | ||||||
|  |  | ||||||
|  | export default defineAction({ | ||||||
|  |   name: 'Create a text file', | ||||||
|  |   key: 'createTextFile', | ||||||
|  |   description: 'Create a new text file from plain text content you specify.', | ||||||
|  |   arguments: [ | ||||||
|  |     { | ||||||
|  |       label: 'Folder', | ||||||
|  |       key: 'parentFolder', | ||||||
|  |       type: 'string', | ||||||
|  |       required: true, | ||||||
|  |       description: | ||||||
|  |         'Enter the folder path that file will be saved, like /TextFiles/ or /Documents/Taxes/', | ||||||
|  |       variables: true, | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       label: 'Folder Name', | ||||||
|  |       key: 'folderName', | ||||||
|  |       type: 'string', | ||||||
|  |       required: true, | ||||||
|  |       description: | ||||||
|  |         "Enter the name for the new file. The file extension will be '.txt'.", | ||||||
|  |       variables: true, | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       label: 'File Content', | ||||||
|  |       key: 'fileContent', | ||||||
|  |       type: 'string', | ||||||
|  |       required: true, | ||||||
|  |       description: 'Plain text content to insert into the new text file.', | ||||||
|  |       variables: true, | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       label: 'Overwrite', | ||||||
|  |       key: 'overwrite', | ||||||
|  |       type: 'dropdown', | ||||||
|  |       required: true, | ||||||
|  |       description: | ||||||
|  |         'Overwrite this file (if one of the same name exists) or not.', | ||||||
|  |       variables: true, | ||||||
|  |       options: [ | ||||||
|  |         { label: 'False', value: false }, | ||||||
|  |         { label: 'True', value: true }, | ||||||
|  |       ], | ||||||
|  |     }, | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   async run($) { | ||||||
|  |     const fileContent = $.step.parameters.fileContent; | ||||||
|  |     const overwrite = $.step.parameters.overwrite; | ||||||
|  |     const parentFolder = $.step.parameters.parentFolder; | ||||||
|  |     const folderName = $.step.parameters.folderName; | ||||||
|  |     const folderPath = path.join(parentFolder, folderName); | ||||||
|  |  | ||||||
|  |     const headers = { | ||||||
|  |       Authorization: `Bearer ${$.auth.data.accessToken}`, | ||||||
|  |       'Content-Type': 'application/octet-stream', | ||||||
|  |       'Dropbox-API-Arg': JSON.stringify({ | ||||||
|  |         autorename: false, | ||||||
|  |         mode: overwrite ? 'overwrite' : 'add', | ||||||
|  |         mute: false, | ||||||
|  |         path: `${folderPath}.txt`, | ||||||
|  |         strict_conflict: false, | ||||||
|  |       }), | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |     const response = await $.http.post( | ||||||
|  |       'https://content.dropboxapi.com/2/files/upload', | ||||||
|  |       fileContent, | ||||||
|  |       { | ||||||
|  |         headers, | ||||||
|  |         additionalProperties: { | ||||||
|  |           skipAddingAuthHeader: true, | ||||||
|  |         }, | ||||||
|  |       } | ||||||
|  |     ); | ||||||
|  |  | ||||||
|  |     $.setActionItem({ raw: response.data }); | ||||||
|  |   }, | ||||||
|  | }); | ||||||
| @@ -1,4 +1,5 @@ | |||||||
| import createFolder from './create-folder/index.js'; | import createFolder from './create-folder/index.js'; | ||||||
|  | import createTextFile from './create-text-file/index.js'; | ||||||
| import renameFile from './rename-file/index.js'; | import renameFile from './rename-file/index.js'; | ||||||
|  |  | ||||||
| export default [createFolder, renameFile]; | export default [createFolder, createTextFile, renameFile]; | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| const addAuthHeader = ($, requestConfig) => { | const addAuthHeader = ($, requestConfig) => { | ||||||
|   requestConfig.headers['Content-Type'] = 'application/json'; |  | ||||||
|  |  | ||||||
|   if ( |   if ( | ||||||
|     !requestConfig.additionalProperties?.skipAddingAuthHeader && |     !requestConfig.additionalProperties?.skipAddingAuthHeader && | ||||||
|     $.auth.data?.accessToken |     $.auth.data?.accessToken | ||||||
|   ) { |   ) { | ||||||
|  |     requestConfig.headers['Content-Type'] = 'application/json'; | ||||||
|  |  | ||||||
|     requestConfig.headers.Authorization = `Bearer ${$.auth.data.accessToken}`; |     requestConfig.headers.Authorization = `Bearer ${$.auth.data.accessToken}`; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ import defineApp from '../../helpers/define-app.js'; | |||||||
| import addAuthHeader from './common/add-auth-header.js'; | import addAuthHeader from './common/add-auth-header.js'; | ||||||
| import auth from './auth/index.js'; | import auth from './auth/index.js'; | ||||||
| import actions from './actions/index.js'; | import actions from './actions/index.js'; | ||||||
|  | import triggers from './triggers/index.js'; | ||||||
|  |  | ||||||
| export default defineApp({ | export default defineApp({ | ||||||
|   name: 'Dropbox', |   name: 'Dropbox', | ||||||
| @@ -15,4 +16,5 @@ export default defineApp({ | |||||||
|   beforeRequest: [addAuthHeader], |   beforeRequest: [addAuthHeader], | ||||||
|   auth, |   auth, | ||||||
|   actions, |   actions, | ||||||
|  |   triggers, | ||||||
| }); | }); | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								packages/backend/src/apps/dropbox/triggers/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								packages/backend/src/apps/dropbox/triggers/index.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | import newFolders from './new-folders/index.js'; | ||||||
|  |  | ||||||
|  | export default [newFolders]; | ||||||
| @@ -0,0 +1,61 @@ | |||||||
|  | import defineTrigger from '../../../../helpers/define-trigger.js'; | ||||||
|  |  | ||||||
|  | export default defineTrigger({ | ||||||
|  |   name: 'New folders', | ||||||
|  |   key: 'newFolders', | ||||||
|  |   pollInterval: 15, | ||||||
|  |   description: | ||||||
|  |     'Triggers when any new folder is added. Ensure that the number of files/folders within the monitored directory remains below 4000.', | ||||||
|  |   arguments: [ | ||||||
|  |     { | ||||||
|  |       label: 'Folder', | ||||||
|  |       key: 'folderPath', | ||||||
|  |       type: 'string', | ||||||
|  |       required: true, | ||||||
|  |       description: | ||||||
|  |         'Enter the folder path that you want to follow, like /TextFiles or /Documents/Taxes.', | ||||||
|  |       variables: true, | ||||||
|  |     }, | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   async run($) { | ||||||
|  |     const folderPath = $.step.parameters.folderPath; | ||||||
|  |     let endpoint = '/2/files/list_folder'; | ||||||
|  |     let next = false; | ||||||
|  |  | ||||||
|  |     const params = { | ||||||
|  |       path: folderPath, | ||||||
|  |       recursive: false, | ||||||
|  |       include_deleted: false, | ||||||
|  |       include_has_explicit_shared_members: false, | ||||||
|  |       include_mounted_folders: true, | ||||||
|  |       limit: 2000, | ||||||
|  |       include_non_downloadable_files: true, | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |     do { | ||||||
|  |       const { data } = await $.http.post(endpoint, params); | ||||||
|  |  | ||||||
|  |       if (data.has_more) { | ||||||
|  |         endpoint += '/continue'; | ||||||
|  |         params.cursor = data.cursor; | ||||||
|  |         next = data.has_more; | ||||||
|  |       } else { | ||||||
|  |         next = false; | ||||||
|  |       } | ||||||
|  |  | ||||||
|  |       if (data.entries?.length) { | ||||||
|  |         for (const entry of data.entries.reverse()) { | ||||||
|  |           if (entry['.tag'] === 'folder') { | ||||||
|  |             $.pushTriggerItem({ | ||||||
|  |               raw: entry, | ||||||
|  |               meta: { | ||||||
|  |                 internalId: entry.id, | ||||||
|  |               }, | ||||||
|  |             }); | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } while (next); | ||||||
|  |   }, | ||||||
|  | }); | ||||||
| @@ -73,6 +73,7 @@ export default defineConfig({ | |||||||
|           collapsible: true, |           collapsible: true, | ||||||
|           collapsed: true, |           collapsed: true, | ||||||
|           items: [ |           items: [ | ||||||
|  |             { text: 'Triggers', link: '/apps/dropbox/triggers' }, | ||||||
|             { text: 'Actions', link: '/apps/dropbox/actions' }, |             { text: 'Actions', link: '/apps/dropbox/actions' }, | ||||||
|             { text: 'Connection', link: '/apps/dropbox/connection' }, |             { text: 'Connection', link: '/apps/dropbox/connection' }, | ||||||
|           ], |           ], | ||||||
| @@ -305,7 +306,7 @@ export default defineConfig({ | |||||||
|           collapsed: true, |           collapsed: true, | ||||||
|           items: [ |           items: [ | ||||||
|             { text: 'Actions', link: '/apps/removebg/actions' }, |             { text: 'Actions', link: '/apps/removebg/actions' }, | ||||||
|             { text: 'Connection', link: '/apps/removebg/connection' } |             { text: 'Connection', link: '/apps/removebg/connection' }, | ||||||
|           ], |           ], | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|   | |||||||
| @@ -3,6 +3,8 @@ favicon: /favicons/dropbox.svg | |||||||
| items: | items: | ||||||
|   - name: Create a folder |   - name: Create a folder | ||||||
|     desc: Creates a new folder with the given parent folder and folder name. |     desc: Creates a new folder with the given parent folder and folder name. | ||||||
|  |   - name: Create a text file | ||||||
|  |     desc: Create a new text file from plain text content you specify. | ||||||
|   - name: Rename a file |   - name: Rename a file | ||||||
|     desc: Rename a file with the given file path and new name. |     desc: Rename a file with the given file path and new name. | ||||||
| --- | --- | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								packages/docs/pages/apps/dropbox/triggers.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								packages/docs/pages/apps/dropbox/triggers.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | --- | ||||||
|  | favicon: /favicons/dropbox.svg | ||||||
|  | items: | ||||||
|  |   - name: New folders | ||||||
|  |     desc: Triggers when any new folder is added. Ensure that the number of files/folders within the monitored directory remains below 4000. | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | <script setup> | ||||||
|  |   import CustomListing from '../../components/CustomListing.vue' | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <CustomListing /> | ||||||
		Reference in New Issue
	
	Block a user