🔀 Merge branch 'onedrive-creatt push origin mastere-folder-hierarchy'

This commit is contained in:
Jan Oberhauser 2021-10-20 22:08:15 -05:00
commit 3898b86cc9
2 changed files with 21 additions and 13 deletions

View file

@ -56,6 +56,7 @@ export const folderFields = [
name: 'name',
required: true,
type: 'string',
placeholder: '/Pictures/2021',
displayOptions: {
show: {
operation: [
@ -67,7 +68,7 @@ export const folderFields = [
},
},
default: '',
description: `Folder's name`,
description: 'The name or path of the folder',
},
{
displayName: 'Options',

View file

@ -97,7 +97,7 @@ export class MicrosoftOneDrive implements INodeType {
body.name = additionalFields.name as string;
}
responseData = await microsoftApiRequest.call(this, 'POST', `/drive/items/${fileId}/copy`, body, {}, undefined, {}, { json: true, resolveWithFullResponse: true });
responseData = { location : responseData.headers.location };
responseData = { location: responseData.headers.location };
returnData.push(responseData as IDataObject);
}
//https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/driveitem_delete?view=odsp-graph-online
@ -193,7 +193,7 @@ export class MicrosoftOneDrive implements INodeType {
const binaryData = (items[i].binary as IBinaryKeyData)[binaryPropertyName];
const body = await this.helpers.getBinaryDataBuffer(i, binaryPropertyName);
responseData = await microsoftApiRequest.call(this, 'PUT', `/drive/items/${parentId}:/${fileName || binaryData.fileName}:/content`, body, {}, undefined, { 'Content-Type': binaryData.mimeType, 'Content-length': body.length }, {} );
responseData = await microsoftApiRequest.call(this, 'PUT', `/drive/items/${parentId}:/${fileName || binaryData.fileName}:/content`, body, {}, undefined, { 'Content-Type': binaryData.mimeType, 'Content-length': body.length }, {});
returnData.push(JSON.parse(responseData) as IDataObject);
} else {
@ -201,7 +201,7 @@ export class MicrosoftOneDrive implements INodeType {
if (fileName === '') {
throw new NodeOperationError(this.getNode(), 'File name must be set!');
}
responseData = await microsoftApiRequest.call(this, 'PUT', `/drive/items/${parentId}:/${fileName}:/content`, body , {}, undefined, { 'Content-Type': 'text/plain' } );
responseData = await microsoftApiRequest.call(this, 'PUT', `/drive/items/${parentId}:/${fileName}:/content`, body, {}, undefined, { 'Content-Type': 'text/plain' });
returnData.push(responseData as IDataObject);
}
}
@ -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 (const name of names) {
const 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