diff --git a/packages/nodes-base/credentials/UProcApi.credentials.ts b/packages/nodes-base/credentials/UProcApi.credentials.ts
index 5428bc4edb..197e7140de 100644
--- a/packages/nodes-base/credentials/UProcApi.credentials.ts
+++ b/packages/nodes-base/credentials/UProcApi.credentials.ts
@@ -7,7 +7,7 @@ export class UProcApi implements ICredentialType {
name = 'uprocApi';
displayName = 'uProc API';
properties = [
- {
+ {
displayName: 'Email',
name: 'email',
type: 'string' as NodePropertyTypes,
diff --git a/packages/nodes-base/nodes/UProc/GenericFunctions.ts b/packages/nodes-base/nodes/UProc/GenericFunctions.ts
index 48629d0675..c322249ec2 100644
--- a/packages/nodes-base/nodes/UProc/GenericFunctions.ts
+++ b/packages/nodes-base/nodes/UProc/GenericFunctions.ts
@@ -22,13 +22,13 @@ export async function uprocApiRequest(this: IHookFunctions | IExecuteFunctions |
const options: OptionsWithUri = {
headers: {
Authorization: `Basic ${token}`,
- "User-agent": "n8n"
+ 'User-agent': 'n8n',
},
method,
qs,
body,
uri: uri || `https://api.uproc.io/api/v2/process`,
- json: true
+ json: true,
};
try {
diff --git a/packages/nodes-base/nodes/UProc/ToolDescription.ts b/packages/nodes-base/nodes/UProc/ToolDescription.ts
index 6fa7bf7d01..733a6d08fa 100644
--- a/packages/nodes-base/nodes/UProc/ToolDescription.ts
+++ b/packages/nodes-base/nodes/UProc/ToolDescription.ts
@@ -30,12 +30,12 @@ for (const group of (groups as IDataObject).groups as IDataObject[]) {
displayOptions: {
show: {
group: [
- group.name
+ group.name,
],
},
},
default: '',
- options: []
+ options: [],
};
const options = [];
@@ -45,7 +45,7 @@ for (const group of (groups as IDataObject).groups as IDataObject[]) {
const option = {
name: tool.d as string,
value: tool.k,
- description: (tool.ed as string) + ` Info`
+ description: (tool.ed as string) + ` Info`,
};
options.push(option);
}
@@ -82,7 +82,7 @@ for (const tool of (tools as IDataObject).processors as IDataObject[]) {
tool.g,
],
tool: [
- tool.k
+ tool.k,
],
},
},
diff --git a/packages/nodes-base/nodes/UProc/UProc.node.ts b/packages/nodes-base/nodes/UProc/UProc.node.ts
index 21704b2f18..8721f9b166 100644
--- a/packages/nodes-base/nodes/UProc/UProc.node.ts
+++ b/packages/nodes-base/nodes/UProc/UProc.node.ts
@@ -1,145 +1,142 @@
import {
- IExecuteFunctions,
+ IExecuteFunctions,
} from 'n8n-core';
import {
- IDataObject,
- INodeExecutionData,
- INodeType,
- INodeTypeDescription,
+ IDataObject,
+ INodeExecutionData,
+ INodeType,
+ INodeTypeDescription,
} from 'n8n-workflow';
import {
- uprocApiRequest,
+ uprocApiRequest,
} from './GenericFunctions';
import {
- groupOptions,
+ groupOptions,
} from './GroupDescription';
import {
- toolOperations,
- toolParameters,
+ toolOperations,
+ toolParameters,
} from './ToolDescription';
export class UProc implements INodeType {
- description: INodeTypeDescription = {
- displayName: 'uProc',
- name: 'uproc',
- icon: 'file:uproc.png',
- group: ['output'],
- version: 1,
- subtitle: '={{$parameter["tool"]}}',
- description: 'Consume uProc API',
- defaults: {
- name: 'uProc',
- color: '#219ef9',
- },
- inputs: ['main'],
- outputs: ['main'],
- credentials: [
- {
- name: 'uprocApi',
- required: true,
- },
- ],
- properties: [
- ...groupOptions,
- ...toolOperations,
- ...toolParameters,
- {
- displayName: 'Additional Options',
- name: 'additionalOptions',
- type: 'collection',
- placeholder: 'Add Option',
- default: {},
- displayOptions: {
- show: {
- group: [
- 'audio',
- 'communication',
- 'company',
- 'finance',
- 'geographic',
- 'image',
- 'internet',
- 'personal',
- 'product',
- 'security',
- 'text',
- ],
- },
- },
- options: [
- {
- displayName: 'Data Webhook',
- name: 'dataWebhook',
- type: 'string',
- description: 'URL to send tool response when tool has resolved your request. You can create your own webhook at en Beeceptor, Integromat, Zapier or n8n',
- default: '',
- }
- ]
- }
- ],
- };
+ description: INodeTypeDescription = {
+ displayName: 'uProc',
+ name: 'uproc',
+ icon: 'file:uproc.png',
+ group: ['output'],
+ version: 1,
+ subtitle: '={{$parameter["tool"]}}',
+ description: 'Consume uProc API',
+ defaults: {
+ name: 'uProc',
+ color: '#219ef9',
+ },
+ inputs: ['main'],
+ outputs: ['main'],
+ credentials: [
+ {
+ name: 'uprocApi',
+ required: true,
+ },
+ ],
+ properties: [
+ ...groupOptions,
+ ...toolOperations,
+ ...toolParameters,
+ {
+ displayName: 'Additional Options',
+ name: 'additionalOptions',
+ type: 'collection',
+ placeholder: 'Add Option',
+ default: {},
+ displayOptions: {
+ show: {
+ group: [
+ 'audio',
+ 'communication',
+ 'company',
+ 'finance',
+ 'geographic',
+ 'image',
+ 'internet',
+ 'personal',
+ 'product',
+ 'security',
+ 'text',
+ ],
+ },
+ },
+ options: [
+ {
+ displayName: 'Data Webhook',
+ name: 'dataWebhook',
+ type: 'string',
+ description: 'URL to send tool response when tool has resolved your request. You can create your own webhook at en Beeceptor, Integromat, Zapier or n8n',
+ default: '',
+ },
+ ],
+ },
+ ],
+ };
- async execute(this: IExecuteFunctions): Promise {
- const items = this.getInputData();
- const returnData: IDataObject[] = [];
- const length = items.length as unknown as number;
- let responseData;
- const group = this.getNodeParameter('group', 0) as string;
- const tool = this.getNodeParameter('tool', 0) as string;
- const additionalOptions = this.getNodeParameter('additionalOptions', 0) as IDataObject;
+ async execute(this: IExecuteFunctions): Promise {
+ const items = this.getInputData();
+ const returnData: IDataObject[] = [];
+ const length = items.length as unknown as number;
+ let responseData;
+ const group = this.getNodeParameter('group', 0) as string;
+ const tool = this.getNodeParameter('tool', 0) as string;
+ const additionalOptions = this.getNodeParameter('additionalOptions', 0) as IDataObject;
+ const dataWebhook = additionalOptions.dataWebhook as string;
- const dataWebhook = additionalOptions.dataWebhook as string;
+ interface LooseObject {
+ [key: string]: any; // tslint:disable-line:no-any
+ }
- interface LooseObject {
- [key: string]: any;
- }
+ const fields = toolParameters.filter((field) => {
+ return field && field.displayOptions && field.displayOptions.show && field.displayOptions.show.group && field.displayOptions.show.tool &&
+ field.displayOptions.show.group.indexOf(group) !== -1 && field.displayOptions.show.tool.indexOf(tool) !== -1;
+ }).map((field) => {
+ return field.name;
+ });
- const fields = toolParameters.filter((field) => {
- return field && field.displayOptions && field.displayOptions.show && field.displayOptions.show.group && field.displayOptions.show.tool &&
- field.displayOptions.show.group.indexOf(group) !== -1 && field.displayOptions.show.tool.indexOf(tool) !== -1;
- }).map((field) => {
- return field.name;
- });
+ const requestPromises = [];
+ for (let i = 0; i < length; i++) {
+ const toolKey = tool.replace(/([A-Z]+)/g, '-$1').toLowerCase();
+ const body: LooseObject = {
+ processor: toolKey,
+ params: {},
+ };
- const requestPromises = [];
- for (let i = 0; i < length; i++) {
- const toolKey = tool.replace(/([A-Z]+)/g, "-$1").toLowerCase();
- const body: LooseObject = {
- processor: toolKey,
- params: {}
- };
+ fields.forEach((field) => {
+ if (field && field.length) {
+ const data = this.getNodeParameter(field, i) as string;
+ body.params[field] = data + '';
+ }
+ });
- //console.log(fields);
- fields.forEach((field) => {
- if (field && field.length) {
- const data = this.getNodeParameter(field, i) as string;
- //console.log(field, data);
- body.params[field] = data + "";
- }
- });
+ if (dataWebhook && dataWebhook.length) {
+ body.callback = {};
+ }
- if (dataWebhook && dataWebhook.length) {
- body.callback = {};
- }
+ if (dataWebhook && dataWebhook.length) {
+ body.callback.data = dataWebhook;
+ }
- if (dataWebhook && dataWebhook.length) {
- body.callback.data = dataWebhook;
- }
+ //Change to multiple requests
+ responseData = await uprocApiRequest.call(this, 'POST', body);
- //Change to multiple requests
- responseData = await uprocApiRequest.call(this, 'POST', body);
-
- if (Array.isArray(responseData)) {
- returnData.push.apply(returnData, responseData as IDataObject[]);
- } else {
- returnData.push(responseData as IDataObject);
- }
- }
- return [this.helpers.returnJsonArray(returnData)];
- }
+ if (Array.isArray(responseData)) {
+ returnData.push.apply(returnData, responseData as IDataObject[]);
+ } else {
+ returnData.push(responseData as IDataObject);
+ }
+ }
+ return [this.helpers.returnJsonArray(returnData)];
+ }
}