From 5de93a7db1674f97f972692461daafbb18db51fd Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 5 Sep 2021 14:27:47 +0200 Subject: [PATCH] :sparkles: Make it possible to sent fileExtension on Salesforce Document upload --- .../nodes-base/nodes/Salesforce/DocumentDescription.ts | 8 ++++++++ packages/nodes-base/nodes/Salesforce/Salesforce.node.ts | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/nodes-base/nodes/Salesforce/DocumentDescription.ts b/packages/nodes-base/nodes/Salesforce/DocumentDescription.ts index 819b2eb036..a0a3671304 100644 --- a/packages/nodes-base/nodes/Salesforce/DocumentDescription.ts +++ b/packages/nodes-base/nodes/Salesforce/DocumentDescription.ts @@ -85,6 +85,14 @@ export const documentFields = [ }, }, options: [ + { + displayName: 'File Extension', + name: 'fileExtension', + type: 'string', + default: '', + placeholder: 'pdf', + description: 'File extension to use. If none is set, the value from the binary data will be used.', + }, { displayName: 'Link To Object ID', name: 'linkToObjectId', diff --git a/packages/nodes-base/nodes/Salesforce/Salesforce.node.ts b/packages/nodes-base/nodes/Salesforce/Salesforce.node.ts index 4c7f45db7e..5f0060c660 100644 --- a/packages/nodes-base/nodes/Salesforce/Salesforce.node.ts +++ b/packages/nodes-base/nodes/Salesforce/Salesforce.node.ts @@ -1687,7 +1687,7 @@ export class Salesforce implements INodeType { const binaryData = items[i].binary![binaryPropertyName]; const dataBuffer = await this.helpers.getBinaryDataBuffer(i, binaryPropertyName); - body.entity_content['PathOnClient'] = `${title}.${binaryData.fileExtension}`; + body.entity_content['PathOnClient'] = `${title}.${additionalFields.fileExtension || binaryData.fileExtension}`; data = { entity_content: { value: JSON.stringify(body.entity_content), @@ -1698,11 +1698,11 @@ export class Salesforce implements INodeType { VersionData: { value: dataBuffer, options: { - filename: binaryData.fileName, - contentType: binaryData.mimeType, + filename: body.entity_content['PathOnClient'], }, }, }; + } else { throw new NodeOperationError(this.getNode(), `The property ${binaryPropertyName} does not exist`); }