onedrive folders hierarchy creation support

This commit is contained in:
Roberto Damiani 2021-10-10 02:42:25 +02:00
parent 8618415772
commit 49fbea7551
2 changed files with 17 additions and 10 deletions

View file

@ -67,7 +67,7 @@ export const folderFields = [
},
},
default: '',
description: `Folder's name`,
description: `Folder's name, or a folders slash (/) separated hierarchy`,
},
{
displayName: 'Options',

View file

@ -209,17 +209,24 @@ export class MicrosoftOneDrive implements INodeType {
if (resource === 'folder') {
//https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/driveitem_post_children?view=odsp-graph-online
if (operation === 'create') {
const name = this.getNodeParameter('name', i) as string;
const names = (this.getNodeParameter('name', i) as string).split("/").filter( s => s.trim() != "" );
const options = this.getNodeParameter('options', i) as IDataObject;
const body: IDataObject = {
name,
folder: {},
};
let endpoint = '/drive/root/children';
if (options.parentFolderId) {
endpoint = `/drive/items/${options.parentFolderId}/children`;
let parentFolderId = options.parentFolderId ? options.parentFolderId : null;
for( let name of names ) {
let body: IDataObject = {
name,
folder: {},
};
let endpoint = '/drive/root/children';
if (parentFolderId) {
endpoint = `/drive/items/${parentFolderId}/children`;
}
responseData = await microsoftApiRequest.call(this, 'POST', endpoint, body);
if( !responseData.id ) {
break;
}
parentFolderId = responseData.id;
}
responseData = await microsoftApiRequest.call(this, 'POST', endpoint, body);
returnData.push(responseData);
}
//https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/driveitem_delete?view=odsp-graph-online