Feature/paired item support (#3869)

* Add paired item helper and implement it in some nodes
This commit is contained in:
Omar Ajoue
2022-08-30 17:55:33 +02:00
committed by GitHub
parent 087d3f99f1
commit b2c674591c
150 changed files with 4027 additions and 1625 deletions

View File

@@ -7,6 +7,7 @@ import {
INodePropertyOptions,
INodeType,
INodeTypeDescription,
NodeExecutionWithMetadata,
} from 'n8n-workflow';
import { deepLApiRequest } from './GenericFunctions';
@@ -108,14 +109,13 @@ export class DeepL implements INodeType {
const items = this.getInputData();
const length = items.length;
const responseData = [];
const responseData: INodeExecutionData[] = [];
for (let i = 0; i < length; i++) {
try {
const resource = this.getNodeParameter('resource', i) as string;
const operation = this.getNodeParameter('operation', i) as string;
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
if (resource === 'language') {
if (operation === 'translate') {
let body: IDataObject = {};
@@ -129,19 +129,30 @@ export class DeepL implements INodeType {
: additionalFields.sourceLang;
}
const response = await deepLApiRequest.call(this, 'GET', '/translate', body);
responseData.push(response.translations[0]);
const { translations } = await deepLApiRequest.call(this, 'GET', '/translate', body);
const [translation] = translations;
const translationJsonArray = this.helpers.returnJsonArray(translation);
const executionData = this.helpers.constructExecutionMetaData(
translationJsonArray,
{ itemData: { item: i } },
);
responseData.push(...executionData);
}
}
} catch (error) {
if (this.continueOnFail()) {
responseData.push({ $error: error, $json: this.getInputData(i) });
const executionErrorData = {
json: {} as IDataObject,
error: error.message,
itemIndex: i,
};
responseData.push(executionErrorData as INodeExecutionData);
continue;
}
throw error;
}
}
return [this.helpers.returnJsonArray(responseData)];
return [responseData];
}
}