diff --git a/packages/nodes-base/nodes/Google/Gmail/DraftDescription.ts b/packages/nodes-base/nodes/Google/Gmail/DraftDescription.ts index b2fd38cd3e..ded9971f6a 100644 --- a/packages/nodes-base/nodes/Google/Gmail/DraftDescription.ts +++ b/packages/nodes-base/nodes/Google/Gmail/DraftDescription.ts @@ -209,7 +209,8 @@ export const draftFields = [ name: 'property', type: 'string', default: '', - description: 'Name of the binary property containing the data to be added to the email as an attachment', + description: `Name of the binary property containing the data to be added to the email as an attachment.
+ Multiples can be set separated by comma.`, }, ], }, diff --git a/packages/nodes-base/nodes/Google/Gmail/Gmail.node.ts b/packages/nodes-base/nodes/Google/Gmail/Gmail.node.ts index 158c0de9b0..2fd4457849 100644 --- a/packages/nodes-base/nodes/Google/Gmail/Gmail.node.ts +++ b/packages/nodes-base/nodes/Google/Gmail/Gmail.node.ts @@ -325,28 +325,29 @@ export class Gmail implements INodeType { if (additionalFields.attachmentsUi) { const attachmentsUi = additionalFields.attachmentsUi as IDataObject; - let attachmentsBinary = []; + const attachmentsBinary = []; if (!isEmpty(attachmentsUi)) { if (attachmentsUi.hasOwnProperty('attachmentsBinary') && !isEmpty(attachmentsUi.attachmentsBinary) && items[i].binary) { - // @ts-ignore - attachmentsBinary = attachmentsUi.attachmentsBinary.map((value) => { - if (items[i].binary!.hasOwnProperty(value.property)) { - const aux: IAttachments = { name: '', content: '', type: '' }; - aux.name = items[i].binary![value.property].fileName || 'unknown'; - aux.content = items[i].binary![value.property].data; - aux.type = items[i].binary![value.property].mimeType; - return aux; + for (const { property } of attachmentsUi.attachmentsBinary as IDataObject[]) { + for (const binaryProperty of (property as string).split(',')) { + if (items[i].binary![binaryProperty] !== undefined) { + const binaryData = items[i].binary![binaryProperty]; + attachmentsBinary.push({ + name: binaryData.fileName || 'unknown', + content: binaryData.data, + type: binaryData.mimeType, + }); + } } - }); + } } qs = { userId: 'me', uploadType: 'media', }; - attachmentsList = attachmentsBinary; } } @@ -408,32 +409,32 @@ export class Gmail implements INodeType { if (additionalFields.attachmentsUi) { const attachmentsUi = additionalFields.attachmentsUi as IDataObject; - let attachmentsBinary = []; + const attachmentsBinary = []; if (!isEmpty(attachmentsUi)) { if (attachmentsUi.hasOwnProperty('attachmentsBinary') && !isEmpty(attachmentsUi.attachmentsBinary) && items[i].binary) { - // @ts-ignore - attachmentsBinary = attachmentsUi.attachmentsBinary.map((value) => { - if (items[i].binary!.hasOwnProperty(value.property)) { - const aux: IAttachments = { name: '', content: '', type: '' }; - aux.name = items[i].binary![value.property].fileName || 'unknown'; - aux.content = items[i].binary![value.property].data; - aux.type = items[i].binary![value.property].mimeType; - return aux; + for (const { property } of attachmentsUi.attachmentsBinary as IDataObject[]) { + for (const binaryProperty of (property as string).split(',')) { + if (items[i].binary![binaryProperty] !== undefined) { + const binaryData = items[i].binary![binaryProperty]; + attachmentsBinary.push({ + name: binaryData.fileName || 'unknown', + content: binaryData.data, + type: binaryData.mimeType, + }); + } } - }); + } } qs = { userId: 'me', uploadType: 'media', }; - attachmentsList = attachmentsBinary; } } - // if no recipient is defined then grab the one who sent the email if (toStr === '') { endpoint = `/gmail/v1/users/me/messages/${id}`; @@ -500,7 +501,7 @@ export class Gmail implements INodeType { const dataPropertyNameDownload = additionalFields.dataPropertyAttachmentsPrefixName as string || 'attachment_'; nodeExecutionData = await parseRawEmail.call(this, responseData, dataPropertyNameDownload); - } else { + } else { nodeExecutionData = { json: responseData, }; @@ -628,28 +629,29 @@ export class Gmail implements INodeType { if (additionalFields.attachmentsUi) { const attachmentsUi = additionalFields.attachmentsUi as IDataObject; - let attachmentsBinary = []; + const attachmentsBinary = []; if (!isEmpty(attachmentsUi)) { if (attachmentsUi.hasOwnProperty('attachmentsBinary') && !isEmpty(attachmentsUi.attachmentsBinary) && items[i].binary) { - // @ts-ignore - attachmentsBinary = attachmentsUi.attachmentsBinary.map((value) => { - if (items[i].binary!.hasOwnProperty(value.property)) { - const aux: IAttachments = { name: '', content: '', type: '' }; - aux.name = items[i].binary![value.property].fileName || 'unknown'; - aux.content = items[i].binary![value.property].data; - aux.type = items[i].binary![value.property].mimeType; - return aux; + for (const { property } of attachmentsUi.attachmentsBinary as IDataObject[]) { + for (const binaryProperty of (property as string).split(',')) { + if (items[i].binary![binaryProperty] !== undefined) { + const binaryData = items[i].binary![binaryProperty]; + attachmentsBinary.push({ + name: binaryData.fileName || 'unknown', + content: binaryData.data, + type: binaryData.mimeType, + }); + } } - }); + } } qs = { userId: 'me', uploadType: 'media', }; - attachmentsList = attachmentsBinary; } } diff --git a/packages/nodes-base/nodes/Google/Gmail/MessageDescription.ts b/packages/nodes-base/nodes/Google/Gmail/MessageDescription.ts index 581a13cb3d..a860580951 100644 --- a/packages/nodes-base/nodes/Google/Gmail/MessageDescription.ts +++ b/packages/nodes-base/nodes/Google/Gmail/MessageDescription.ts @@ -226,30 +226,6 @@ export const messageFields = [ }, default: {}, options: [ - { - displayName: 'CC Email', - name: 'ccList', - type: 'string', - description: 'The email addresses of the copy recipients.', - typeOptions: { - multipleValues: true, - multipleValueButtonText: 'Add CC Email', - }, - placeholder: 'info@example.com', - default: [], - }, - { - displayName: 'BCC Email', - name: 'bccList', - type: 'string', - description: 'The email addresses of the blind copy recipients.', - typeOptions: { - multipleValues: true, - multipleValueButtonText: 'Add BCC Email', - }, - placeholder: 'info@example.com', - default: [], - }, { displayName: 'Attachments', name: 'attachmentsUi', @@ -268,7 +244,8 @@ export const messageFields = [ name: 'property', type: 'string', default: '', - description: 'Name of the binary properties which contain data which should be added to email as attachment', + description: `Name of the binary property containing the data to be added to the email as an attachment.
+ Multiples can be set separated by comma.`, }, ], }, @@ -276,6 +253,30 @@ export const messageFields = [ default: '', description: 'Array of supported attachments to add to the message.', }, + { + displayName: 'BCC Email', + name: 'bccList', + type: 'string', + description: 'The email addresses of the blind copy recipients.', + typeOptions: { + multipleValues: true, + multipleValueButtonText: 'Add BCC Email', + }, + placeholder: 'info@example.com', + default: [], + }, + { + displayName: 'CC Email', + name: 'ccList', + type: 'string', + description: 'The email addresses of the copy recipients.', + typeOptions: { + multipleValues: true, + multipleValueButtonText: 'Add CC Email', + }, + placeholder: 'info@example.com', + default: [], + }, ], }, {