mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-18 02:21:13 +00:00
refactor: Unify binary-data assertion across all nodes (no-changelog) (#5624)
This commit is contained in:
committed by
GitHub
parent
01a2160b3b
commit
5eb0d52459
@@ -1,7 +1,6 @@
|
||||
import type { IExecuteFunctions } from 'n8n-core';
|
||||
|
||||
import type {
|
||||
IDataObject,
|
||||
IExecuteFunctions,
|
||||
ILoadOptionsFunctions,
|
||||
INodeExecutionData,
|
||||
INodePropertyOptions,
|
||||
@@ -1076,7 +1075,6 @@ export class SlackV1 implements INodeType {
|
||||
//https://api.slack.com/methods/files.upload
|
||||
if (operation === 'upload') {
|
||||
const options = this.getNodeParameter('options', i);
|
||||
const binaryData = this.getNodeParameter('binaryData', i);
|
||||
const body: IDataObject = {};
|
||||
if (options.channelIds) {
|
||||
body.channels = (options.channelIds as string[]).join(',');
|
||||
@@ -1093,31 +1091,18 @@ export class SlackV1 implements INodeType {
|
||||
if (options.title) {
|
||||
body.title = options.title as string;
|
||||
}
|
||||
if (binaryData) {
|
||||
if (this.getNodeParameter('binaryData', i)) {
|
||||
const binaryPropertyName = this.getNodeParameter('binaryPropertyName', i);
|
||||
if (
|
||||
items[i].binary === undefined ||
|
||||
//@ts-ignore
|
||||
items[i].binary[binaryPropertyName] === undefined
|
||||
) {
|
||||
throw new NodeOperationError(
|
||||
this.getNode(),
|
||||
`Item has no binary property called "${binaryPropertyName}"`,
|
||||
{ itemIndex: i },
|
||||
);
|
||||
}
|
||||
const binaryData = this.helpers.assertBinaryData(i, binaryPropertyName);
|
||||
const binaryDataBuffer = await this.helpers.getBinaryDataBuffer(
|
||||
i,
|
||||
binaryPropertyName,
|
||||
);
|
||||
body.file = {
|
||||
//@ts-ignore
|
||||
value: binaryDataBuffer,
|
||||
options: {
|
||||
//@ts-ignore
|
||||
filename: items[i].binary[binaryPropertyName].fileName,
|
||||
//@ts-ignore
|
||||
contentType: items[i].binary[binaryPropertyName].mimeType,
|
||||
filename: binaryData.fileName,
|
||||
contentType: binaryData.mimeType,
|
||||
},
|
||||
};
|
||||
responseData = await slackApiRequest.call(
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import type { IExecuteFunctions } from 'n8n-core';
|
||||
import { BINARY_ENCODING } from 'n8n-core';
|
||||
import type { Readable } from 'stream';
|
||||
|
||||
import type {
|
||||
IDataObject,
|
||||
IExecuteFunctions,
|
||||
ILoadOptionsFunctions,
|
||||
INodeExecutionData,
|
||||
INodeListSearchItems,
|
||||
@@ -1043,7 +1043,6 @@ export class SlackV2 implements INodeType {
|
||||
//https://api.slack.com/methods/files.upload
|
||||
if (operation === 'upload') {
|
||||
const options = this.getNodeParameter('options', i);
|
||||
const binaryData = this.getNodeParameter('binaryData', i);
|
||||
const body: IDataObject = {};
|
||||
if (options.channelIds) {
|
||||
body.channels = (options.channelIds as string[]).join(',');
|
||||
@@ -1060,34 +1059,21 @@ export class SlackV2 implements INodeType {
|
||||
if (options.title) {
|
||||
body.title = options.title as string;
|
||||
}
|
||||
if (binaryData) {
|
||||
if (this.getNodeParameter('binaryData', i)) {
|
||||
const binaryPropertyName = this.getNodeParameter('binaryPropertyName', i);
|
||||
if (
|
||||
items[i].binary === undefined ||
|
||||
//@ts-ignore
|
||||
items[i].binary[binaryPropertyName] === undefined
|
||||
) {
|
||||
throw new NodeOperationError(
|
||||
this.getNode(),
|
||||
`Item has no binary property called "${binaryPropertyName}"`,
|
||||
{ itemIndex: i },
|
||||
);
|
||||
}
|
||||
const binaryData = this.helpers.assertBinaryData(i, binaryPropertyName);
|
||||
|
||||
let uploadData: Buffer | Readable;
|
||||
const itemBinaryData = items[i].binary![binaryPropertyName];
|
||||
if (itemBinaryData.id) {
|
||||
uploadData = this.helpers.getBinaryStream(itemBinaryData.id);
|
||||
if (binaryData.id) {
|
||||
uploadData = this.helpers.getBinaryStream(binaryData.id);
|
||||
} else {
|
||||
uploadData = Buffer.from(itemBinaryData.data, BINARY_ENCODING);
|
||||
uploadData = Buffer.from(binaryData.data, BINARY_ENCODING);
|
||||
}
|
||||
body.file = {
|
||||
//@ts-ignore
|
||||
value: uploadData,
|
||||
options: {
|
||||
//@ts-ignore
|
||||
filename: itemBinaryData.fileName,
|
||||
//@ts-ignore
|
||||
contentType: itemBinaryData.mimeType,
|
||||
filename: binaryData.fileName,
|
||||
contentType: binaryData.mimeType,
|
||||
},
|
||||
};
|
||||
responseData = await slackApiRequest.call(
|
||||
|
||||
Reference in New Issue
Block a user