mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
⚡ Add full continue-on-fail support to all nodes (#1996)
* Update Compression node * Update Crypto node * Update DateTime node * Update EditImage node * Update EmailSend node * Update ExecuteWorkflow node * Update FTP node * Update Function node * Update FunctionItem node * Update ExecuteCommand node * Update OpenWeatherMap node * Update ReadBinaryFile node * Update ReadPdf node * Update RssFeedRead node & add URL validation * Update SpreadsheetFile node * Update Switch node * Update WriteBinaryFile node * Update Xml node * Update ActiveCampaign node * Update Airtable node * Update ApiTemplateIo node * Update Asana node * Update AwsLambda node * Update AwsSns node * Update AwsComprehend node * Update AwsRekognition node * Update AwsS3 node * Fix Error item * Update AwsSes node * Update AwsSqs node * Update Amqp node * Update Bitly node * Update Box node * Update Brandfetch node * Update CircleCi node * Update Clearbit node * Update ClickUp node * Update Cockpit node * Update CoinGecko node * Update Contentful node * Update ConvertKit node * Update Cortex node * Update CustomerIo node * Update DeepL node * Update Demio node * Update Disqus node * Update Drift node * Update Dropbox node * Update GetResponse node * Refactor & Update Ghost node * Update Github node * Update Gitlab node * Update GoogleAnalytics node * Update GoogleBooks node * Update GoogleCalendar node * Update GoogleDrive node * Update Gmail node * Update GoogleSheets node * Update GoogleSlides node * Update GoogleTasks node * Update Gotify node * Update GraphQL node * Update HackerNews node * Update Harvest node * Update HtmlExtract node * Update Hubspot node * Update Hunter node * Update Intercom node * Update Kafka node * Refactor & update Line node * Update LinkedIn node * Update Mailchimp node * Update Mandrill node * Update Matrix node * Update Mautic node * Update Medium node * Update MessageBird node * Update Mindee node * Update Mocean node * Update MondayCom node * Update MicrosoftExcel node * Update MicrosoftOneDrive node * Update MicrosoftOutlook node * Update Affinity node * Update Chargebee node * Update Discourse node * Update Freshdesk node * Update YouTube node * Update InvoiceNinja node * Update MailerLite node * Update Mailgun node * Update Mailjet node * Update Mattermost node * Update Nasa node * Update NextCloud node * Update OpenThesaurus node * Update Orbit node * Update PagerDuty node * Update PayPal node * Update Peekalink node * Update Phantombuster node * Update PostHog node * Update ProfitWell node * Refactor & Update Pushbullet node * Update QuickBooks node * Update Raindrop node * Update Reddit node * Update Rocketchat node * Update S3 node * Update Salesforce node * Update SendGrid node * Update SentryIo node * Update Shopify node * Update Signl4 node * Update Slack node * Update Spontit node * Update Spotify node * Update Storyblok node * Refactor & Update Strapi node * Refactor & Update Strava node * Update Taiga node * Refactor & update Tapfiliate node * Update Telegram node * Update TheHive node * Update Todoist node * Update TravisCi node * Update Trello node * Update Twilio node * Update Twist node * Update Twitter node * Update Uplead node * Update UProc node * Update Vero node * Update Webflow node * Update Wekan node * Update Wordpress node * Update Xero node * Update Yourls node * Update Zendesk node * Update ZohoCrm node * Refactor & Update Zoom node * Update Zulip node * Update Clockify node * Update MongoDb node * Update MySql node * Update MicrosoftTeams node * Update Stackby node * Refactor Discourse node * Support corner-case in Github node update * Support corner-case in Gitlab node update * Refactor & Update GoogleContacts node * Refactor Mindee node * Update Coda node * Lint fixes * Update Beeminder node * Update Google Firebase RealtimeDatabase node * Update HelpScout node * Update Mailcheck node * Update Paddle node * Update Pipedrive node * Update Pushover node * Update Segment node * Refactor & Update Vonage node * Added new conditions to warnings on execute batch cmd * Added keep only properties flag * Fixed code for keep only props * Added dependencies for image editing Co-authored-by: dali <servfrdali@yahoo.fr>
This commit is contained in:
8
.github/workflows/test-workflows.yml
vendored
8
.github/workflows/test-workflows.yml
vendored
@@ -31,6 +31,14 @@ jobs:
|
|||||||
uses: actions/setup-node@v1
|
uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
|
-
|
||||||
|
name: Install dependencies
|
||||||
|
run: |
|
||||||
|
apt update -y
|
||||||
|
echo 'tzdata tzdata/Areas select Europe' | debconf-set-selections
|
||||||
|
echo 'tzdata tzdata/Zones/Europe select Paris' | debconf-set-selections
|
||||||
|
DEBIAN_FRONTEND="noninteractive" apt-get install -y graphicsmagick
|
||||||
|
shell: bash
|
||||||
-
|
-
|
||||||
name: npm install and build
|
name: npm install and build
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
1
packages/cli/commands/Interfaces.d.ts
vendored
1
packages/cli/commands/Interfaces.d.ts
vendored
@@ -42,6 +42,7 @@ interface INodeSpecialCases {
|
|||||||
interface INodeSpecialCase {
|
interface INodeSpecialCase {
|
||||||
ignoredProperties?: string[];
|
ignoredProperties?: string[];
|
||||||
capResults?: number;
|
capResults?: number;
|
||||||
|
keepOnlyProperties?: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
type ExecutionStatus = 'success' | 'error' | 'warning' | 'running';
|
type ExecutionStatus = 'success' | 'error' | 'warning' | 'running';
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ import {
|
|||||||
LoggerProxy,
|
LoggerProxy,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
import {
|
||||||
|
pick,
|
||||||
|
} from 'lodash';
|
||||||
|
|
||||||
export class ExecuteBatch extends Command {
|
export class ExecuteBatch extends Command {
|
||||||
static description = '\nExecutes multiple workflows once';
|
static description = '\nExecutes multiple workflows once';
|
||||||
|
|
||||||
@@ -166,6 +170,8 @@ export class ExecuteBatch extends Command {
|
|||||||
'429',
|
'429',
|
||||||
'econnrefused',
|
'econnrefused',
|
||||||
'missing a required parameter',
|
'missing a required parameter',
|
||||||
|
'insufficient credit balance',
|
||||||
|
'request timed out',
|
||||||
];
|
];
|
||||||
|
|
||||||
errorMessage = errorMessage.toLowerCase();
|
errorMessage = errorMessage.toLowerCase();
|
||||||
@@ -600,6 +606,8 @@ export class ExecuteBatch extends Command {
|
|||||||
nodeEdgeCases[node.name].capResults = parseInt(parts[1], 10);
|
nodeEdgeCases[node.name].capResults = parseInt(parts[1], 10);
|
||||||
} else if (parts[0] === 'IGNORED_PROPERTIES') {
|
} else if (parts[0] === 'IGNORED_PROPERTIES') {
|
||||||
nodeEdgeCases[node.name].ignoredProperties = parts[1].split(',').map(property => property.trim());
|
nodeEdgeCases[node.name].ignoredProperties = parts[1].split(',').map(property => property.trim());
|
||||||
|
} else if (parts[0] === 'KEEP_ONLY_PROPERTIES') {
|
||||||
|
nodeEdgeCases[node.name].keepOnlyProperties = parts[1].split(',').map(property => property.trim());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -701,6 +709,11 @@ export class ExecuteBatch extends Command {
|
|||||||
nodeEdgeCases[nodeName].ignoredProperties!.forEach(ignoredProperty => delete executionData.json[ignoredProperty]);
|
nodeEdgeCases[nodeName].ignoredProperties!.forEach(ignoredProperty => delete executionData.json[ignoredProperty]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let keepOnlyFields = [] as string[];
|
||||||
|
if (nodeEdgeCases[nodeName] !== undefined && nodeEdgeCases[nodeName].keepOnlyProperties !== undefined) {
|
||||||
|
keepOnlyFields = nodeEdgeCases[nodeName].keepOnlyProperties!;
|
||||||
|
}
|
||||||
|
executionData.json = keepOnlyFields.length > 0 ? pick(executionData.json, keepOnlyFields) : executionData.json;
|
||||||
const jsonProperties = executionData.json;
|
const jsonProperties = executionData.json;
|
||||||
|
|
||||||
const nodeOutputAttributes = Object.keys(jsonProperties);
|
const nodeOutputAttributes = Object.keys(jsonProperties);
|
||||||
|
|||||||
@@ -333,6 +333,8 @@ export class ActiveCampaign implements INodeType {
|
|||||||
let dataKey: string | undefined;
|
let dataKey: string | undefined;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
|
|
||||||
dataKey = undefined;
|
dataKey = undefined;
|
||||||
resource = this.getNodeParameter('resource', 0) as string;
|
resource = this.getNodeParameter('resource', 0) as string;
|
||||||
operation = this.getNodeParameter('operation', 0) as string;
|
operation = this.getNodeParameter('operation', 0) as string;
|
||||||
@@ -1184,6 +1186,13 @@ export class ActiveCampaign implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -162,6 +162,7 @@ export class Affinity implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'list') {
|
if (resource === 'list') {
|
||||||
//https://api-docs.affinity.co/#get-a-specific-list
|
//https://api-docs.affinity.co/#get-a-specific-list
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
@@ -353,6 +354,13 @@ export class Affinity implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -489,6 +489,7 @@ export class Airtable implements INodeType {
|
|||||||
let bulkSize = 10;
|
let bulkSize = 10;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
addAllFields = this.getNodeParameter('addAllFields', i) as boolean;
|
addAllFields = this.getNodeParameter('addAllFields', i) as boolean;
|
||||||
options = this.getNodeParameter('options', i, {}) as IDataObject;
|
options = this.getNodeParameter('options', i, {}) as IDataObject;
|
||||||
bulkSize = options.bulkSize as number || bulkSize;
|
bulkSize = options.bulkSize as number || bulkSize;
|
||||||
@@ -527,6 +528,13 @@ export class Airtable implements INodeType {
|
|||||||
// empty rows
|
// empty rows
|
||||||
rows.length = 0;
|
rows.length = 0;
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (operation === 'delete') {
|
} else if (operation === 'delete') {
|
||||||
@@ -537,6 +545,7 @@ export class Airtable implements INodeType {
|
|||||||
const bulkSize = options.bulkSize as number || 10;
|
const bulkSize = options.bulkSize as number || 10;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
let id: string;
|
let id: string;
|
||||||
|
|
||||||
id = this.getNodeParameter('id', i) as string;
|
id = this.getNodeParameter('id', i) as string;
|
||||||
@@ -560,13 +569,20 @@ export class Airtable implements INodeType {
|
|||||||
// empty rows
|
// empty rows
|
||||||
rows.length = 0;
|
rows.length = 0;
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (operation === 'list') {
|
} else if (operation === 'list') {
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
// list
|
// list
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
try {
|
||||||
requestMethod = 'GET';
|
requestMethod = 'GET';
|
||||||
endpoint = `${application}/${table}`;
|
endpoint = `${application}/${table}`;
|
||||||
|
|
||||||
@@ -598,6 +614,13 @@ export class Airtable implements INodeType {
|
|||||||
const data = await downloadRecordAttachments.call(this, responseData.records, downloadFieldNames);
|
const data = await downloadRecordAttachments.call(this, responseData.records, downloadFieldNames);
|
||||||
return [data];
|
return [data];
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
} else {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} else if (operation === 'read') {
|
} else if (operation === 'read') {
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
@@ -619,10 +642,17 @@ export class Airtable implements INodeType {
|
|||||||
// functionality in core should make it easy to make requests
|
// functionality in core should make it easy to make requests
|
||||||
// according to specific rules like not more than 5 requests
|
// according to specific rules like not more than 5 requests
|
||||||
// per seconds.
|
// per seconds.
|
||||||
|
try {
|
||||||
responseData = await apiRequest.call(this, requestMethod, endpoint, body, qs);
|
responseData = await apiRequest.call(this, requestMethod, endpoint, body, qs);
|
||||||
|
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (operation === 'update') {
|
} else if (operation === 'update') {
|
||||||
@@ -640,6 +670,7 @@ export class Airtable implements INodeType {
|
|||||||
let bulkSize = 10;
|
let bulkSize = 10;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
updateAllFields = this.getNodeParameter('updateAllFields', i) as boolean;
|
updateAllFields = this.getNodeParameter('updateAllFields', i) as boolean;
|
||||||
options = this.getNodeParameter('options', i, {}) as IDataObject;
|
options = this.getNodeParameter('options', i, {}) as IDataObject;
|
||||||
bulkSize = options.bulkSize as number || bulkSize;
|
bulkSize = options.bulkSize as number || bulkSize;
|
||||||
@@ -695,6 +726,13 @@ export class Airtable implements INodeType {
|
|||||||
// empty rows
|
// empty rows
|
||||||
rows.length = 0;
|
rows.length = 0;
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ export class Amqp implements INodeType {
|
|||||||
};
|
};
|
||||||
|
|
||||||
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
|
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
|
||||||
|
try {
|
||||||
const credentials = this.getCredentials('amqp');
|
const credentials = this.getCredentials('amqp');
|
||||||
if (!credentials) {
|
if (!credentials) {
|
||||||
throw new NodeOperationError(this.getNode(), 'Credentials are mandatory!');
|
throw new NodeOperationError(this.getNode(), 'Credentials are mandatory!');
|
||||||
@@ -176,5 +177,12 @@ export class Amqp implements INodeType {
|
|||||||
conn.close();
|
conn.close();
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(responseData)];
|
return [this.helpers.returnJsonArray(responseData)];
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return [this.helpers.returnJsonArray({ error: error.message })];
|
||||||
|
}else{
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -420,10 +420,17 @@ export class ApiTemplateIo implements INodeType {
|
|||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
responseData = await apiTemplateIoApiRequest.call(this, 'GET', '/account-information');
|
responseData = await apiTemplateIoApiRequest.call(this, 'GET', '/account-information');
|
||||||
|
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({json:{ error: error.message }});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -442,6 +449,7 @@ export class ApiTemplateIo implements INodeType {
|
|||||||
|
|
||||||
// https://docs.apitemplate.io/reference/api-reference.html#create-an-image-jpeg-and-png
|
// https://docs.apitemplate.io/reference/api-reference.html#create-an-image-jpeg-and-png
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const jsonParameters = this.getNodeParameter('jsonParameters', i) as boolean;
|
const jsonParameters = this.getNodeParameter('jsonParameters', i) as boolean;
|
||||||
|
|
||||||
const options = this.getNodeParameter('options', i) as IDataObject;
|
const options = this.getNodeParameter('options', i) as IDataObject;
|
||||||
@@ -488,6 +496,13 @@ export class ApiTemplateIo implements INodeType {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({json:{ error: error.message }});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (download === true) {
|
if (download === true) {
|
||||||
@@ -511,6 +526,7 @@ export class ApiTemplateIo implements INodeType {
|
|||||||
const download = this.getNodeParameter('download', 0) as boolean;
|
const download = this.getNodeParameter('download', 0) as boolean;
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const jsonParameters = this.getNodeParameter('jsonParameters', i) as boolean;
|
const jsonParameters = this.getNodeParameter('jsonParameters', i) as boolean;
|
||||||
|
|
||||||
const options = this.getNodeParameter('options', i) as IDataObject;
|
const options = this.getNodeParameter('options', i) as IDataObject;
|
||||||
@@ -550,6 +566,13 @@ export class ApiTemplateIo implements INodeType {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({json:{ error: error.message }});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (download === true) {
|
if (download === true) {
|
||||||
return this.prepareOutputData(returnData as unknown as INodeExecutionData[]);
|
return this.prepareOutputData(returnData as unknown as INodeExecutionData[]);
|
||||||
|
|||||||
@@ -1842,6 +1842,7 @@ export class Asana implements INodeType {
|
|||||||
let responseData;
|
let responseData;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
body = {};
|
body = {};
|
||||||
qs = {};
|
qs = {};
|
||||||
|
|
||||||
@@ -2254,6 +2255,13 @@ export class Asana implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -172,6 +172,7 @@ export class AwsLambda implements INodeType {
|
|||||||
const returnData: IDataObject[] = [];
|
const returnData: IDataObject[] = [];
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const params = {
|
const params = {
|
||||||
FunctionName: this.getNodeParameter('function', i) as string,
|
FunctionName: this.getNodeParameter('function', i) as string,
|
||||||
InvocationType: this.getNodeParameter('invocationType', i) as string,
|
InvocationType: this.getNodeParameter('invocationType', i) as string,
|
||||||
@@ -204,7 +205,13 @@ export class AwsLambda implements INodeType {
|
|||||||
result: responseData,
|
result: responseData,
|
||||||
} as IDataObject);
|
} as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -140,6 +140,7 @@ export class AwsSns implements INodeType {
|
|||||||
const returnData: IDataObject[] = [];
|
const returnData: IDataObject[] = [];
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const params = [
|
const params = [
|
||||||
'TopicArn=' + this.getNodeParameter('topic', i) as string,
|
'TopicArn=' + this.getNodeParameter('topic', i) as string,
|
||||||
'Subject=' + this.getNodeParameter('subject', i) as string,
|
'Subject=' + this.getNodeParameter('subject', i) as string,
|
||||||
@@ -149,6 +150,13 @@ export class AwsSns implements INodeType {
|
|||||||
|
|
||||||
const responseData = await awsApiRequestSOAP.call(this, 'sns', 'GET', '/?Action=Publish&' + params.join('&'));
|
const responseData = await awsApiRequestSOAP.call(this, 'sns', 'GET', '/?Action=Publish&' + params.join('&'));
|
||||||
returnData.push({MessageId: responseData.PublishResponse.PublishResult.MessageId} as IDataObject);
|
returnData.push({MessageId: responseData.PublishResponse.PublishResult.MessageId} as IDataObject);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -213,6 +213,7 @@ export class AwsComprehend implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'text') {
|
if (resource === 'text') {
|
||||||
//https://docs.aws.amazon.com/comprehend/latest/dg/API_DetectDominantLanguage.html
|
//https://docs.aws.amazon.com/comprehend/latest/dg/API_DetectDominantLanguage.html
|
||||||
if (operation === 'detectDominantLanguage') {
|
if (operation === 'detectDominantLanguage') {
|
||||||
@@ -271,6 +272,13 @@ export class AwsComprehend implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -383,6 +383,7 @@ export class AwsRekognition implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'image') {
|
if (resource === 'image') {
|
||||||
//https://docs.aws.amazon.com/rekognition/latest/dg/API_DetectModerationLabels.html#API_DetectModerationLabels_RequestSyntax
|
//https://docs.aws.amazon.com/rekognition/latest/dg/API_DetectModerationLabels.html#API_DetectModerationLabels_RequestSyntax
|
||||||
if (operation === 'analyze') {
|
if (operation === 'analyze') {
|
||||||
@@ -507,6 +508,13 @@ export class AwsRekognition implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ export class AwsS3 implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
const headers: IDataObject = {};
|
const headers: IDataObject = {};
|
||||||
|
try {
|
||||||
if (resource === 'bucket') {
|
if (resource === 'bucket') {
|
||||||
//https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html
|
//https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
@@ -630,6 +631,13 @@ export class AwsS3 implements INodeType {
|
|||||||
returnData.push({ success: true });
|
returnData.push({ success: true });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (resource === 'file' && operation === 'download') {
|
if (resource === 'file' && operation === 'download') {
|
||||||
// For file downloads the files get attached to the existing items
|
// For file downloads the files get attached to the existing items
|
||||||
|
|||||||
@@ -934,7 +934,7 @@ export class AwsSes implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'customVerificationEmail') {
|
if (resource === 'customVerificationEmail') {
|
||||||
|
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
@@ -1305,6 +1305,13 @@ export class AwsSes implements INodeType {
|
|||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -316,6 +316,7 @@ export class AwsSqs implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const queueUrl = this.getNodeParameter('queue', i) as string;
|
const queueUrl = this.getNodeParameter('queue', i) as string;
|
||||||
const queuePath = new URL(queueUrl).pathname;
|
const queuePath = new URL(queueUrl).pathname;
|
||||||
|
|
||||||
@@ -394,6 +395,13 @@ export class AwsSqs implements INodeType {
|
|||||||
|
|
||||||
const result = responseData.SendMessageResponse.SendMessageResult;
|
const result = responseData.SendMessageResponse.SendMessageResult;
|
||||||
returnData.push(result as IDataObject);
|
returnData.push(result as IDataObject);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.description });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -340,7 +340,7 @@ export class Beeminder implements INodeType {
|
|||||||
|
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'datapoint') {
|
if (resource === 'datapoint') {
|
||||||
const goalName = this.getNodeParameter('goalName', i) as string;
|
const goalName = this.getNodeParameter('goalName', i) as string;
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
@@ -393,7 +393,13 @@ export class Beeminder implements INodeType {
|
|||||||
results = await deleteDatapoint.call(this, data);
|
results = await deleteDatapoint.call(this, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
if (Array.isArray(results)) {
|
if (Array.isArray(results)) {
|
||||||
returnData.push.apply(returnData, results as IDataObject[]);
|
returnData.push.apply(returnData, results as IDataObject[]);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ export class Bitly implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'link') {
|
if (resource === 'link') {
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
const longUrl = this.getNodeParameter('longUrl', i) as string;
|
const longUrl = this.getNodeParameter('longUrl', i) as string;
|
||||||
@@ -217,6 +218,13 @@ export class Bitly implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,6 +89,7 @@ export class Box implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'file') {
|
if (resource === 'file') {
|
||||||
// https://developer.box.com/reference/post-files-id-copy
|
// https://developer.box.com/reference/post-files-id-copy
|
||||||
if (operation === 'copy') {
|
if (operation === 'copy') {
|
||||||
@@ -480,6 +481,13 @@ export class Box implements INodeType {
|
|||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (resource === 'file' && operation === 'download') {
|
if (resource === 'file' && operation === 'download') {
|
||||||
// For file downloads the files get attached to the existing items
|
// For file downloads the files get attached to the existing items
|
||||||
|
|||||||
@@ -167,6 +167,7 @@ export class Brandfetch implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
const responseData = [];
|
const responseData = [];
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (operation === 'logo') {
|
if (operation === 'logo') {
|
||||||
const domain = this.getNodeParameter('domain', i) as string;
|
const domain = this.getNodeParameter('domain', i) as string;
|
||||||
const download = this.getNodeParameter('download', i) as boolean;
|
const download = this.getNodeParameter('download', i) as boolean;
|
||||||
@@ -259,6 +260,13 @@ export class Brandfetch implements INodeType {
|
|||||||
const response = await brandfetchApiRequest.call(this, 'POST', `/industry`, body);
|
const response = await brandfetchApiRequest.call(this, 'POST', `/industry`, body);
|
||||||
responseData.push.apply(responseData, response.response);
|
responseData.push.apply(responseData, response.response);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
responseData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'logo' && this.getNodeParameter('download', 0) === true) {
|
if (operation === 'logo' && this.getNodeParameter('download', 0) === true) {
|
||||||
|
|||||||
@@ -502,7 +502,7 @@ export class Chargebee implements INodeType {
|
|||||||
let qs: IDataObject;
|
let qs: IDataObject;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
item = items[i];
|
item = items[i];
|
||||||
const resource = this.getNodeParameter('resource', i) as string;
|
const resource = this.getNodeParameter('resource', i) as string;
|
||||||
const operation = this.getNodeParameter('operation', i) as string;
|
const operation = this.getNodeParameter('operation', i) as string;
|
||||||
@@ -636,6 +636,13 @@ export class Chargebee implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ export class CircleCi implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'pipeline') {
|
if (resource === 'pipeline') {
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
const vcs = this.getNodeParameter('vcs', i) as string;
|
const vcs = this.getNodeParameter('vcs', i) as string;
|
||||||
@@ -134,6 +135,13 @@ export class CircleCi implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ export class Clearbit implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'person') {
|
if (resource === 'person') {
|
||||||
if (operation === 'enrich') {
|
if (operation === 'enrich') {
|
||||||
const email = this.getNodeParameter('email', i) as string;
|
const email = this.getNodeParameter('email', i) as string;
|
||||||
@@ -146,6 +147,13 @@ export class Clearbit implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -482,6 +482,7 @@ export class ClickUp implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'checklist') {
|
if (resource === 'checklist') {
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
const taskId = this.getNodeParameter('task', i) as string;
|
const taskId = this.getNodeParameter('task', i) as string;
|
||||||
@@ -1427,6 +1428,13 @@ export class ClickUp implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -233,6 +233,7 @@ export class Clockify implements INodeType {
|
|||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
if (resource === 'project') {
|
if (resource === 'project') {
|
||||||
|
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
@@ -570,7 +571,6 @@ export class Clockify implements INodeType {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (Array.isArray(responseData)) {
|
if (Array.isArray(responseData)) {
|
||||||
|
|
||||||
@@ -580,6 +580,14 @@ export class Clockify implements INodeType {
|
|||||||
|
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,6 +120,7 @@ export class Cockpit implements INodeType {
|
|||||||
let responseData;
|
let responseData;
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'collection') {
|
if (resource === 'collection') {
|
||||||
const collectionName = this.getNodeParameter('collection', i) as string;
|
const collectionName = this.getNodeParameter('collection', i) as string;
|
||||||
|
|
||||||
@@ -163,6 +164,13 @@ export class Cockpit implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -231,6 +231,7 @@ export class Coda implements INodeType {
|
|||||||
if (resource === 'table') {
|
if (resource === 'table') {
|
||||||
// https://coda.io/developers/apis/v1beta1#operation/upsertRows
|
// https://coda.io/developers/apis/v1beta1#operation/upsertRows
|
||||||
if (operation === 'createRow') {
|
if (operation === 'createRow') {
|
||||||
|
try {
|
||||||
const sendData = {} as IDataObject;
|
const sendData = {} as IDataObject;
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
qs = {};
|
qs = {};
|
||||||
@@ -273,13 +274,19 @@ export class Coda implements INodeType {
|
|||||||
for (const endpoint of Object.keys(sendData)) {
|
for (const endpoint of Object.keys(sendData)) {
|
||||||
await codaApiRequest.call(this, 'POST', endpoint, sendData[endpoint], (sendData[endpoint]! as IDataObject).qs! as IDataObject);
|
await codaApiRequest.call(this, 'POST', endpoint, sendData[endpoint], (sendData[endpoint]! as IDataObject).qs! as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return [this.helpers.returnJsonArray({ error: error.message })];
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
// Return the incoming data
|
// Return the incoming data
|
||||||
return [items];
|
return [items];
|
||||||
}
|
}
|
||||||
// https://coda.io/developers/apis/v1beta1#operation/getRow
|
// https://coda.io/developers/apis/v1beta1#operation/getRow
|
||||||
if (operation === 'getRow') {
|
if (operation === 'getRow') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
const tableId = this.getNodeParameter('tableId', i) as string;
|
const tableId = this.getNodeParameter('tableId', i) as string;
|
||||||
const rowId = this.getNodeParameter('rowId', i) as string;
|
const rowId = this.getNodeParameter('rowId', i) as string;
|
||||||
@@ -304,6 +311,13 @@ export class Coda implements INodeType {
|
|||||||
...responseData.values,
|
...responseData.values,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
@@ -341,6 +355,9 @@ export class Coda implements INodeType {
|
|||||||
responseData = responseData.items;
|
responseData = responseData.items;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return [this.helpers.returnJsonArray({ error: error.message })];
|
||||||
|
}
|
||||||
throw new NodeApiError(this.getNode(), error);
|
throw new NodeApiError(this.getNode(), error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -358,6 +375,7 @@ export class Coda implements INodeType {
|
|||||||
}
|
}
|
||||||
// https://coda.io/developers/apis/v1beta1#operation/deleteRows
|
// https://coda.io/developers/apis/v1beta1#operation/deleteRows
|
||||||
if (operation === 'deleteRow') {
|
if (operation === 'deleteRow') {
|
||||||
|
try {
|
||||||
const sendData = {} as IDataObject;
|
const sendData = {} as IDataObject;
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
@@ -377,13 +395,19 @@ export class Coda implements INodeType {
|
|||||||
for (const endpoint of Object.keys(sendData)) {
|
for (const endpoint of Object.keys(sendData)) {
|
||||||
await codaApiRequest.call(this, 'DELETE', endpoint, { rowIds: sendData[endpoint]}, qs);
|
await codaApiRequest.call(this, 'DELETE', endpoint, { rowIds: sendData[endpoint]}, qs);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return [this.helpers.returnJsonArray({ error: error.message })];
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
// Return the incoming data
|
// Return the incoming data
|
||||||
return [items];
|
return [items];
|
||||||
}
|
}
|
||||||
// https://coda.io/developers/apis/v1beta1#operation/pushButton
|
// https://coda.io/developers/apis/v1beta1#operation/pushButton
|
||||||
if (operation === 'pushButton') {
|
if (operation === 'pushButton') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
const tableId = this.getNodeParameter('tableId', i) as string;
|
const tableId = this.getNodeParameter('tableId', i) as string;
|
||||||
const rowId = this.getNodeParameter('rowId', i) as string;
|
const rowId = this.getNodeParameter('rowId', i) as string;
|
||||||
@@ -391,24 +415,40 @@ export class Coda implements INodeType {
|
|||||||
const endpoint = `/docs/${docId}/tables/${tableId}/rows/${rowId}/buttons/${columnId}`;
|
const endpoint = `/docs/${docId}/tables/${tableId}/rows/${rowId}/buttons/${columnId}`;
|
||||||
responseData = await codaApiRequest.call(this, 'POST', endpoint, {});
|
responseData = await codaApiRequest.call(this, 'POST', endpoint, {});
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
//https://coda.io/developers/apis/v1beta1#operation/getColumn
|
//https://coda.io/developers/apis/v1beta1#operation/getColumn
|
||||||
if (operation === 'getColumn') {
|
if (operation === 'getColumn') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
const tableId = this.getNodeParameter('tableId', i) as string;
|
const tableId = this.getNodeParameter('tableId', i) as string;
|
||||||
const columnId = this.getNodeParameter('columnId', i) as string;
|
const columnId = this.getNodeParameter('columnId', i) as string;
|
||||||
const endpoint = `/docs/${docId}/tables/${tableId}/columns/${columnId}`;
|
const endpoint = `/docs/${docId}/tables/${tableId}/columns/${columnId}`;
|
||||||
responseData = await codaApiRequest.call(this, 'GET', endpoint, {});
|
responseData = await codaApiRequest.call(this, 'GET', endpoint, {});
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
//https://coda.io/developers/apis/v1beta1#operation/listColumns
|
//https://coda.io/developers/apis/v1beta1#operation/listColumns
|
||||||
if (operation === 'getAllColumns') {
|
if (operation === 'getAllColumns') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
const tableId = this.getNodeParameter('tableId', i) as string;
|
const tableId = this.getNodeParameter('tableId', i) as string;
|
||||||
@@ -421,6 +461,13 @@ export class Coda implements INodeType {
|
|||||||
responseData = responseData.items;
|
responseData = responseData.items;
|
||||||
}
|
}
|
||||||
returnData.push.apply(returnData,responseData);
|
returnData.push.apply(returnData,responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
@@ -429,17 +476,26 @@ export class Coda implements INodeType {
|
|||||||
//https://coda.io/developers/apis/v1beta1#operation/getFormula
|
//https://coda.io/developers/apis/v1beta1#operation/getFormula
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
const formulaId = this.getNodeParameter('formulaId', i) as string;
|
const formulaId = this.getNodeParameter('formulaId', i) as string;
|
||||||
const endpoint = `/docs/${docId}/formulas/${formulaId}`;
|
const endpoint = `/docs/${docId}/formulas/${formulaId}`;
|
||||||
responseData = await codaApiRequest.call(this, 'GET', endpoint, {});
|
responseData = await codaApiRequest.call(this, 'GET', endpoint, {});
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
//https://coda.io/developers/apis/v1beta1#operation/listFormulas
|
//https://coda.io/developers/apis/v1beta1#operation/listFormulas
|
||||||
if (operation === 'getAll') {
|
if (operation === 'getAll') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
const endpoint = `/docs/${docId}/formulas`;
|
const endpoint = `/docs/${docId}/formulas`;
|
||||||
@@ -451,6 +507,13 @@ export class Coda implements INodeType {
|
|||||||
responseData = responseData.items;
|
responseData = responseData.items;
|
||||||
}
|
}
|
||||||
returnData.push.apply(returnData,responseData);
|
returnData.push.apply(returnData,responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
@@ -459,17 +522,26 @@ export class Coda implements INodeType {
|
|||||||
//https://coda.io/developers/apis/v1beta1#operation/getControl
|
//https://coda.io/developers/apis/v1beta1#operation/getControl
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
const controlId = this.getNodeParameter('controlId', i) as string;
|
const controlId = this.getNodeParameter('controlId', i) as string;
|
||||||
const endpoint = `/docs/${docId}/controls/${controlId}`;
|
const endpoint = `/docs/${docId}/controls/${controlId}`;
|
||||||
responseData = await codaApiRequest.call(this, 'GET', endpoint, {});
|
responseData = await codaApiRequest.call(this, 'GET', endpoint, {});
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
//https://coda.io/developers/apis/v1beta1#operation/listControls
|
//https://coda.io/developers/apis/v1beta1#operation/listControls
|
||||||
if (operation === 'getAll') {
|
if (operation === 'getAll') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
const endpoint = `/docs/${docId}/controls`;
|
const endpoint = `/docs/${docId}/controls`;
|
||||||
@@ -481,6 +553,13 @@ export class Coda implements INodeType {
|
|||||||
responseData = responseData.items;
|
responseData = responseData.items;
|
||||||
}
|
}
|
||||||
returnData.push.apply(returnData,responseData);
|
returnData.push.apply(returnData,responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
@@ -500,6 +579,7 @@ export class Coda implements INodeType {
|
|||||||
//https://coda.io/developers/apis/v1beta1#operation/listViews
|
//https://coda.io/developers/apis/v1beta1#operation/listViews
|
||||||
if (operation === 'getAll') {
|
if (operation === 'getAll') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
const endpoint = `/docs/${docId}/tables?tableTypes=view`;
|
const endpoint = `/docs/${docId}/tables?tableTypes=view`;
|
||||||
@@ -511,6 +591,13 @@ export class Coda implements INodeType {
|
|||||||
responseData = responseData.items;
|
responseData = responseData.items;
|
||||||
}
|
}
|
||||||
returnData.push.apply(returnData,responseData);
|
returnData.push.apply(returnData,responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
@@ -543,6 +630,9 @@ export class Coda implements INodeType {
|
|||||||
responseData = responseData.items;
|
responseData = responseData.items;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return [this.helpers.returnJsonArray({ error: error.message })];
|
||||||
|
}
|
||||||
throw new NodeApiError(this.getNode(), error);
|
throw new NodeApiError(this.getNode(), error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -561,18 +651,27 @@ export class Coda implements INodeType {
|
|||||||
//https://coda.io/developers/apis/v1beta1#operation/deleteViewRow
|
//https://coda.io/developers/apis/v1beta1#operation/deleteViewRow
|
||||||
if (operation === 'deleteViewRow') {
|
if (operation === 'deleteViewRow') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
const viewId = this.getNodeParameter('viewId', i) as string;
|
const viewId = this.getNodeParameter('viewId', i) as string;
|
||||||
const rowId = this.getNodeParameter('rowId', i) as string;
|
const rowId = this.getNodeParameter('rowId', i) as string;
|
||||||
const endpoint = `/docs/${docId}/tables/${viewId}/rows/${rowId}`;
|
const endpoint = `/docs/${docId}/tables/${viewId}/rows/${rowId}`;
|
||||||
responseData = await codaApiRequest.call(this, 'DELETE', endpoint);
|
responseData = await codaApiRequest.call(this, 'DELETE', endpoint);
|
||||||
returnData.push.apply(returnData,responseData);
|
returnData.push.apply(returnData,responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
//https://coda.io/developers/apis/v1beta1#operation/pushViewButton
|
//https://coda.io/developers/apis/v1beta1#operation/pushViewButton
|
||||||
if (operation === 'pushViewButton') {
|
if (operation === 'pushViewButton') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
const viewId = this.getNodeParameter('viewId', i) as string;
|
const viewId = this.getNodeParameter('viewId', i) as string;
|
||||||
const rowId = this.getNodeParameter('rowId', i) as string;
|
const rowId = this.getNodeParameter('rowId', i) as string;
|
||||||
@@ -580,11 +679,19 @@ export class Coda implements INodeType {
|
|||||||
const endpoint = `/docs/${docId}/tables/${viewId}/rows/${rowId}/buttons/${columnId}`;
|
const endpoint = `/docs/${docId}/tables/${viewId}/rows/${rowId}/buttons/${columnId}`;
|
||||||
responseData = await codaApiRequest.call(this, 'POST', endpoint);
|
responseData = await codaApiRequest.call(this, 'POST', endpoint);
|
||||||
returnData.push.apply(returnData,responseData);
|
returnData.push.apply(returnData,responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
if (operation === 'getAllViewColumns') {
|
if (operation === 'getAllViewColumns') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
const viewId = this.getNodeParameter('viewId', i) as string;
|
const viewId = this.getNodeParameter('viewId', i) as string;
|
||||||
@@ -597,12 +704,20 @@ export class Coda implements INodeType {
|
|||||||
responseData = responseData.items;
|
responseData = responseData.items;
|
||||||
}
|
}
|
||||||
returnData.push.apply(returnData,responseData);
|
returnData.push.apply(returnData,responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
//https://coda.io/developers/apis/v1beta1#operation/updateViewRow
|
//https://coda.io/developers/apis/v1beta1#operation/updateViewRow
|
||||||
if (operation === 'updateViewRow') {
|
if (operation === 'updateViewRow') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
qs = {};
|
qs = {};
|
||||||
const docId = this.getNodeParameter('docId', i) as string;
|
const docId = this.getNodeParameter('docId', i) as string;
|
||||||
const viewId = this.getNodeParameter('viewId', i) as string;
|
const viewId = this.getNodeParameter('viewId', i) as string;
|
||||||
@@ -629,6 +744,13 @@ export class Coda implements INodeType {
|
|||||||
cells,
|
cells,
|
||||||
};
|
};
|
||||||
await codaApiRequest.call(this, 'PUT', endpoint, body, qs);
|
await codaApiRequest.call(this, 'PUT', endpoint, body, qs);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
items[i].json = { error: error.message };
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [items];
|
return [items];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ export class CoinGecko implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'coin') {
|
if (resource === 'coin') {
|
||||||
//https://www.coingecko.com/api/documentations/v3#/coins/get_coins__id_
|
//https://www.coingecko.com/api/documentations/v3#/coins/get_coins__id_
|
||||||
//https://www.coingecko.com/api/documentations/v3#/contract/get_coins__id__contract__contract_address_
|
//https://www.coingecko.com/api/documentations/v3#/contract/get_coins__id__contract__contract_address_
|
||||||
@@ -531,6 +531,13 @@ export class CoinGecko implements INodeType {
|
|||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -205,6 +205,7 @@ export class Compression implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
|
|
||||||
if (operation === 'decompress') {
|
if (operation === 'decompress') {
|
||||||
const binaryPropertyNames = (this.getNodeParameter('binaryPropertyName', 0) as string).split(',').map(key => key.trim());
|
const binaryPropertyNames = (this.getNodeParameter('binaryPropertyName', 0) as string).split(',').map(key => key.trim());
|
||||||
@@ -322,6 +323,14 @@ export class Compression implements INodeType {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({json:{ error: error.message }});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.prepareOutputData(returnData);
|
return this.prepareOutputData(returnData);
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ export class Contentful implements INodeType {
|
|||||||
const qs: Record<string, string | number> = {};
|
const qs: Record<string, string | number> = {};
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'space') {
|
if (resource === 'space') {
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
|
|
||||||
@@ -320,6 +321,13 @@ export class Contentful implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -185,6 +185,8 @@ export class ConvertKit implements INodeType {
|
|||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
if (resource === 'customField') {
|
if (resource === 'customField') {
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
|
|
||||||
@@ -479,6 +481,14 @@ export class ConvertKit implements INodeType {
|
|||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -204,6 +204,8 @@ export class Cortex implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
|
|
||||||
if (resource === 'analyzer') {
|
if (resource === 'analyzer') {
|
||||||
//https://github.com/TheHive-Project/CortexDocs/blob/master/api/api-guide.md#run
|
//https://github.com/TheHive-Project/CortexDocs/blob/master/api/api-guide.md#run
|
||||||
if (operation === 'execute') {
|
if (operation === 'execute') {
|
||||||
@@ -463,6 +465,14 @@ export class Cortex implements INodeType {
|
|||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -364,6 +364,9 @@ export class Crypto implements INodeType {
|
|||||||
|
|
||||||
let item: INodeExecutionData;
|
let item: INodeExecutionData;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
item = items[i];
|
item = items[i];
|
||||||
const dataPropertyName = this.getNodeParameter('dataPropertyName', i) as string;
|
const dataPropertyName = this.getNodeParameter('dataPropertyName', i) as string;
|
||||||
const value = this.getNodeParameter('value', i) as string;
|
const value = this.getNodeParameter('value', i) as string;
|
||||||
@@ -410,6 +413,14 @@ export class Crypto implements INodeType {
|
|||||||
set(newItem, `json.${dataPropertyName}`, newValue);
|
set(newItem, `json.${dataPropertyName}`, newValue);
|
||||||
|
|
||||||
returnData.push(newItem);
|
returnData.push(newItem);
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({json:{ error: error.message }});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return this.prepareOutputData(returnData);
|
return this.prepareOutputData(returnData);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,6 +102,8 @@ export class CustomerIo implements INodeType {
|
|||||||
let responseData;
|
let responseData;
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
if (resource === 'campaign') {
|
if (resource === 'campaign') {
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
const campaignId = this.getNodeParameter('campaignId', i) as number;
|
const campaignId = this.getNodeParameter('campaignId', i) as number;
|
||||||
@@ -336,6 +338,14 @@ export class CustomerIo implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as unknown as IDataObject);
|
returnData.push(responseData as unknown as IDataObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -393,6 +393,8 @@ export class DateTime implements INodeType {
|
|||||||
let item: INodeExecutionData;
|
let item: INodeExecutionData;
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
|
|
||||||
const action = this.getNodeParameter('action', 0) as string;
|
const action = this.getNodeParameter('action', 0) as string;
|
||||||
item = items[i];
|
item = items[i];
|
||||||
|
|
||||||
@@ -498,6 +500,14 @@ export class DateTime implements INodeType {
|
|||||||
|
|
||||||
returnData.push(newItem);
|
returnData.push(newItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({json:{ error: error.message }});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.prepareOutputData(returnData);
|
return this.prepareOutputData(returnData);
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ export class DeepL implements INodeType {
|
|||||||
const responseData = [];
|
const responseData = [];
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const resource = this.getNodeParameter('resource', i) as string;
|
const resource = this.getNodeParameter('resource', i) as string;
|
||||||
const operation = this.getNodeParameter('operation', i) as string;
|
const operation = this.getNodeParameter('operation', i) as string;
|
||||||
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
||||||
@@ -131,6 +131,13 @@ export class DeepL implements INodeType {
|
|||||||
responseData.push(response.translations[0]);
|
responseData.push(response.translations[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
responseData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(responseData)];
|
return [this.helpers.returnJsonArray(responseData)];
|
||||||
|
|||||||
@@ -139,6 +139,7 @@ export class Demio implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'event') {
|
if (resource === 'event') {
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
const id = this.getNodeParameter('eventId', i) as string;
|
const id = this.getNodeParameter('eventId', i) as string;
|
||||||
@@ -205,6 +206,13 @@ export class Demio implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -150,6 +150,7 @@ export class Discourse implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'category') {
|
if (resource === 'category') {
|
||||||
//https://docs.discourse.org/#tag/Categories/paths/~1categories.json/post
|
//https://docs.discourse.org/#tag/Categories/paths/~1categories.json/post
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
@@ -489,12 +490,19 @@ export class Discourse implements INodeType {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (Array.isArray(responseData)) {
|
if (Array.isArray(responseData)) {
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -647,6 +647,7 @@ export class Disqus implements INodeType {
|
|||||||
|
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
body = {};
|
body = {};
|
||||||
qs = {};
|
qs = {};
|
||||||
|
|
||||||
@@ -778,6 +779,13 @@ export class Disqus implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
throw new NodeOperationError(this.getNode(), `The resource "${resource}" is not known!`);
|
throw new NodeOperationError(this.getNode(), `The resource "${resource}" is not known!`);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -102,6 +102,7 @@ export class Drift implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'contact') {
|
if (resource === 'contact') {
|
||||||
//https://devdocs.drift.com/docs/creating-a-contact
|
//https://devdocs.drift.com/docs/creating-a-contact
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
@@ -159,6 +160,13 @@ export class Drift implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -811,6 +811,7 @@ export class Dropbox implements INodeType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
body = {};
|
body = {};
|
||||||
|
|
||||||
if (resource === 'file') {
|
if (resource === 'file') {
|
||||||
@@ -1064,6 +1065,17 @@ export class Dropbox implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
if (resource === 'file' && operation === 'download'){
|
||||||
|
items[i].json = { error: error.message };
|
||||||
|
}else{
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (resource === 'file' && operation === 'download') {
|
if (resource === 'file' && operation === 'download') {
|
||||||
|
|||||||
@@ -957,6 +957,9 @@ export class EditImage implements INodeType {
|
|||||||
let item: INodeExecutionData;
|
let item: INodeExecutionData;
|
||||||
|
|
||||||
for (let itemIndex = 0; itemIndex < length; itemIndex++) {
|
for (let itemIndex = 0; itemIndex < length; itemIndex++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
item = items[itemIndex];
|
item = items[itemIndex];
|
||||||
|
|
||||||
|
|
||||||
@@ -1243,6 +1246,13 @@ export class EditImage implements INodeType {
|
|||||||
});
|
});
|
||||||
})));
|
})));
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({json:{ error: error.message }});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return this.prepareOutputData(returnData);
|
return this.prepareOutputData(returnData);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -133,6 +133,7 @@ export class EmailSend implements INodeType {
|
|||||||
let item: INodeExecutionData;
|
let item: INodeExecutionData;
|
||||||
|
|
||||||
for (let itemIndex = 0; itemIndex < length; itemIndex++) {
|
for (let itemIndex = 0; itemIndex < length; itemIndex++) {
|
||||||
|
try {
|
||||||
|
|
||||||
item = items[itemIndex];
|
item = items[itemIndex];
|
||||||
|
|
||||||
@@ -211,6 +212,14 @@ export class EmailSend implements INodeType {
|
|||||||
const info = await transporter.sendMail(mailOptions);
|
const info = await transporter.sendMail(mailOptions);
|
||||||
|
|
||||||
returnData.push({ json: info as unknown as IDataObject });
|
returnData.push({ json: info as unknown as IDataObject });
|
||||||
|
|
||||||
|
}catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({json:{ error: error.message }});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.prepareOutputData(returnData);
|
return this.prepareOutputData(returnData);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import {
|
|||||||
INodeExecutionData,
|
INodeExecutionData,
|
||||||
INodeType,
|
INodeType,
|
||||||
INodeTypeDescription,
|
INodeTypeDescription,
|
||||||
|
NodeOperationError
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
import { exec } from 'child_process';
|
import { exec } from 'child_process';
|
||||||
@@ -24,6 +25,7 @@ export interface IExecReturnData {
|
|||||||
*/
|
*/
|
||||||
function execPromise(command: string): Promise<IExecReturnData> {
|
function execPromise(command: string): Promise<IExecReturnData> {
|
||||||
const returnData: IExecReturnData = {
|
const returnData: IExecReturnData = {
|
||||||
|
error: undefined,
|
||||||
exitCode: 0,
|
exitCode: 0,
|
||||||
stderr: '',
|
stderr: '',
|
||||||
stdout: '',
|
stdout: '',
|
||||||
@@ -94,15 +96,22 @@ export class ExecuteCommand implements INodeType {
|
|||||||
|
|
||||||
const returnItems: INodeExecutionData[] = [];
|
const returnItems: INodeExecutionData[] = [];
|
||||||
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
||||||
|
|
||||||
|
try{
|
||||||
|
|
||||||
command = this.getNodeParameter('command', itemIndex) as string;
|
command = this.getNodeParameter('command', itemIndex) as string;
|
||||||
|
|
||||||
const {
|
const {
|
||||||
// error, TODO: Later make it possible to select if it should fail on error or not
|
error,
|
||||||
exitCode,
|
exitCode,
|
||||||
stdout,
|
stdout,
|
||||||
stderr,
|
stderr,
|
||||||
} = await execPromise(command);
|
} = await execPromise(command);
|
||||||
|
|
||||||
|
if (error !== undefined) {
|
||||||
|
throw new NodeOperationError(this.getNode(), error.message);
|
||||||
|
}
|
||||||
|
|
||||||
returnItems.push(
|
returnItems.push(
|
||||||
{
|
{
|
||||||
json: {
|
json: {
|
||||||
@@ -112,6 +121,14 @@ export class ExecuteCommand implements INodeType {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnItems.push({json:{ error: error.message }});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.prepareOutputData(returnItems);
|
return this.prepareOutputData(returnItems);
|
||||||
|
|||||||
@@ -149,6 +149,9 @@ export class ExecuteWorkflow implements INodeType {
|
|||||||
const source = this.getNodeParameter('source', 0) as string;
|
const source = this.getNodeParameter('source', 0) as string;
|
||||||
|
|
||||||
const workflowInfo: IExecuteWorkflowInfo = {};
|
const workflowInfo: IExecuteWorkflowInfo = {};
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
if (source === 'database') {
|
if (source === 'database') {
|
||||||
// Read workflow from database
|
// Read workflow from database
|
||||||
workflowInfo.id = this.getNodeParameter('workflowId', 0) as string;
|
workflowInfo.id = this.getNodeParameter('workflowId', 0) as string;
|
||||||
@@ -197,5 +200,13 @@ export class ExecuteWorkflow implements INodeType {
|
|||||||
const receivedData = await this.executeWorkflow(workflowInfo, items);
|
const receivedData = await this.executeWorkflow(workflowInfo, items);
|
||||||
|
|
||||||
return receivedData;
|
return receivedData;
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return this.prepareOutputData([{json:{ error: error.message }}]);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1148,6 +1148,7 @@ export class Freshdesk implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'ticket') {
|
if (resource === 'ticket') {
|
||||||
//https://developers.freshdesk.com/api/#create_ticket
|
//https://developers.freshdesk.com/api/#create_ticket
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
@@ -1426,6 +1427,13 @@ export class Freshdesk implements INodeType {
|
|||||||
|
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -378,6 +378,7 @@ export class Ftp implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
credentials = this.getCredentials('ftp');
|
credentials = this.getCredentials('ftp');
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
|
|
||||||
if (credentials === undefined) {
|
if (credentials === undefined) {
|
||||||
throw new NodeOperationError(this.getNode(), 'Failed to get credentials!');
|
throw new NodeOperationError(this.getNode(), 'Failed to get credentials!');
|
||||||
@@ -635,6 +636,13 @@ export class Ftp implements INodeType {
|
|||||||
await ftp!.end();
|
await ftp!.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return this.prepareOutputData([{json:{ error: error.message }}]);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
return [returnItems];
|
return [returnItems];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,11 +102,6 @@ return items;`,
|
|||||||
try {
|
try {
|
||||||
// Execute the function code
|
// Execute the function code
|
||||||
items = (await vm.run(`module.exports = async function() {${functionCode}}()`, __dirname));
|
items = (await vm.run(`module.exports = async function() {${functionCode}}()`, __dirname));
|
||||||
} catch (error) {
|
|
||||||
return Promise.reject(error);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Do very basic validation of the data
|
// Do very basic validation of the data
|
||||||
if (items === undefined) {
|
if (items === undefined) {
|
||||||
throw new NodeOperationError(this.getNode(), 'No data got returned. Always return an Array of items!');
|
throw new NodeOperationError(this.getNode(), 'No data got returned. Always return an Array of items!');
|
||||||
@@ -127,6 +122,16 @@ return items;`,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
items=[{json:{ error: error.message }}];
|
||||||
|
} else {
|
||||||
|
return Promise.reject(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return this.prepareOutputData(items);
|
return this.prepareOutputData(items);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ return item;`,
|
|||||||
let item: INodeExecutionData;
|
let item: INodeExecutionData;
|
||||||
|
|
||||||
for (let itemIndex = 0; itemIndex < length; itemIndex++) {
|
for (let itemIndex = 0; itemIndex < length; itemIndex++) {
|
||||||
|
try {
|
||||||
item = items[itemIndex];
|
item = items[itemIndex];
|
||||||
|
|
||||||
// Copy the items as they may get changed in the functions
|
// Copy the items as they may get changed in the functions
|
||||||
@@ -115,8 +115,13 @@ return item;`,
|
|||||||
// Execute the function code
|
// Execute the function code
|
||||||
jsonData = await vm.run(`module.exports = async function() {${functionCode}}()`, __dirname);
|
jsonData = await vm.run(`module.exports = async function() {${functionCode}}()`, __dirname);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({json:{ error: error.message }});
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Do very basic validation of the data
|
// Do very basic validation of the data
|
||||||
if (jsonData === undefined) {
|
if (jsonData === undefined) {
|
||||||
@@ -132,6 +137,13 @@ return item;`,
|
|||||||
}
|
}
|
||||||
|
|
||||||
returnData.push(returnItem);
|
returnData.push(returnItem);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({json:{ error: error.message }});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return this.prepareOutputData(returnData);
|
return this.prepareOutputData(returnData);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ export class GetResponse implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'contact') {
|
if (resource === 'contact') {
|
||||||
//https://apireference.getresponse.com/#operation/createContact
|
//https://apireference.getresponse.com/#operation/createContact
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
@@ -314,6 +314,13 @@ export class GetResponse implements INodeType {
|
|||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,11 +156,12 @@ export class Ghost implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
const source = this.getNodeParameter('source', 0) as string;
|
const source = this.getNodeParameter('source', 0) as string;
|
||||||
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (source === 'contentApi') {
|
if (source === 'contentApi') {
|
||||||
if (resource === 'post') {
|
if (resource === 'post') {
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
|
||||||
const by = this.getNodeParameter('by', i) as string;
|
const by = this.getNodeParameter('by', i) as string;
|
||||||
|
|
||||||
const identifier = this.getNodeParameter('identifier', i) as string;
|
const identifier = this.getNodeParameter('identifier', i) as string;
|
||||||
@@ -179,11 +180,10 @@ export class Ghost implements INodeType {
|
|||||||
responseData = await ghostApiRequest.call(this, 'GET', endpoint, {}, qs);
|
responseData = await ghostApiRequest.call(this, 'GET', endpoint, {}, qs);
|
||||||
|
|
||||||
returnData.push.apply(returnData, responseData.posts);
|
returnData.push.apply(returnData, responseData.posts);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'getAll') {
|
if (operation === 'getAll') {
|
||||||
for (let i = 0; i < items.length; i++) {
|
|
||||||
|
|
||||||
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
||||||
|
|
||||||
@@ -200,7 +200,7 @@ export class Ghost implements INodeType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
returnData.push.apply(returnData, responseData);
|
returnData.push.apply(returnData, responseData);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -208,7 +208,7 @@ export class Ghost implements INodeType {
|
|||||||
if (source === 'adminApi') {
|
if (source === 'adminApi') {
|
||||||
if (resource === 'post') {
|
if (resource === 'post') {
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
for (let i = 0; i < length; i++) {
|
|
||||||
const title = this.getNodeParameter('title', i) as string;
|
const title = this.getNodeParameter('title', i) as string;
|
||||||
|
|
||||||
const contentFormat = this.getNodeParameter('contentFormat', i) as string;
|
const contentFormat = this.getNodeParameter('contentFormat', i) as string;
|
||||||
@@ -247,21 +247,21 @@ export class Ghost implements INodeType {
|
|||||||
responseData = await ghostApiRequest.call(this, 'POST', '/admin/posts', { posts: [post] }, qs);
|
responseData = await ghostApiRequest.call(this, 'POST', '/admin/posts', { posts: [post] }, qs);
|
||||||
|
|
||||||
returnData.push.apply(returnData, responseData.posts);
|
returnData.push.apply(returnData, responseData.posts);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'delete') {
|
if (operation === 'delete') {
|
||||||
for (let i = 0; i < length; i++) {
|
|
||||||
const postId = this.getNodeParameter('postId', i) as string;
|
const postId = this.getNodeParameter('postId', i) as string;
|
||||||
|
|
||||||
responseData = await ghostApiRequest.call(this, 'DELETE', `/admin/posts/${postId}`);
|
responseData = await ghostApiRequest.call(this, 'DELETE', `/admin/posts/${postId}`);
|
||||||
|
|
||||||
returnData.push({ success: true });
|
returnData.push({ success: true });
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
for (let i = 0; i < length; i++) {
|
|
||||||
const by = this.getNodeParameter('by', i) as string;
|
const by = this.getNodeParameter('by', i) as string;
|
||||||
|
|
||||||
const identifier = this.getNodeParameter('identifier', i) as string;
|
const identifier = this.getNodeParameter('identifier', i) as string;
|
||||||
@@ -280,11 +280,11 @@ export class Ghost implements INodeType {
|
|||||||
responseData = await ghostApiRequest.call(this, 'GET', endpoint, {}, qs);
|
responseData = await ghostApiRequest.call(this, 'GET', endpoint, {}, qs);
|
||||||
|
|
||||||
returnData.push.apply(returnData, responseData.posts);
|
returnData.push.apply(returnData, responseData.posts);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'getAll') {
|
if (operation === 'getAll') {
|
||||||
for (let i = 0; i < length; i++) {
|
|
||||||
|
|
||||||
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
const returnAll = this.getNodeParameter('returnAll', 0) as boolean;
|
||||||
|
|
||||||
@@ -301,11 +301,11 @@ export class Ghost implements INodeType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
returnData.push.apply(returnData, responseData);
|
returnData.push.apply(returnData, responseData);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'update') {
|
if (operation === 'update') {
|
||||||
for (let i = 0; i < length; i++) {
|
|
||||||
const postId = this.getNodeParameter('postId', i) as string;
|
const postId = this.getNodeParameter('postId', i) as string;
|
||||||
|
|
||||||
const contentFormat = this.getNodeParameter('contentFormat', i) as string;
|
const contentFormat = this.getNodeParameter('contentFormat', i) as string;
|
||||||
@@ -344,9 +344,17 @@ export class Ghost implements INodeType {
|
|||||||
responseData = await ghostApiRequest.call(this, 'PUT', `/admin/posts/${postId}`, { posts: [post] }, qs);
|
responseData = await ghostApiRequest.call(this, 'PUT', `/admin/posts/${postId}`, { posts: [post] }, qs);
|
||||||
|
|
||||||
returnData.push.apply(returnData, responseData.posts);
|
returnData.push.apply(returnData, responseData.posts);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1754,6 +1754,7 @@ export class Github implements INodeType {
|
|||||||
const fullOperation = `${resource}:${operation}`;
|
const fullOperation = `${resource}:${operation}`;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
// Reset all values
|
// Reset all values
|
||||||
requestMethod = 'GET';
|
requestMethod = 'GET';
|
||||||
endpoint = '';
|
endpoint = '';
|
||||||
@@ -2170,6 +2171,18 @@ export class Github implements INodeType {
|
|||||||
} else if (overwriteDataOperationsArray.includes(fullOperation)) {
|
} else if (overwriteDataOperationsArray.includes(fullOperation)) {
|
||||||
returnData.push.apply(returnData, responseData);
|
returnData.push.apply(returnData, responseData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
if (overwriteDataOperations.includes(fullOperation) || overwriteDataOperationsArray.includes(fullOperation)) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
} else {
|
||||||
|
items[i].json = { error: error.message };
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (overwriteDataOperations.includes(fullOperation) || overwriteDataOperationsArray.includes(fullOperation)) {
|
if (overwriteDataOperations.includes(fullOperation) || overwriteDataOperationsArray.includes(fullOperation)) {
|
||||||
|
|||||||
@@ -1114,6 +1114,9 @@ export class Gitlab implements INodeType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return [this.helpers.returnJsonArray([{ error: error.message }])];
|
||||||
|
}
|
||||||
throw new NodeOperationError(this.getNode(), error);
|
throw new NodeOperationError(this.getNode(), error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1152,6 +1155,7 @@ export class Gitlab implements INodeType {
|
|||||||
const fullOperation = `${resource}:${operation}`;
|
const fullOperation = `${resource}:${operation}`;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
// Reset all values
|
// Reset all values
|
||||||
requestMethod = 'GET';
|
requestMethod = 'GET';
|
||||||
endpoint = '';
|
endpoint = '';
|
||||||
@@ -1365,6 +1369,17 @@ export class Gitlab implements INodeType {
|
|||||||
} else if (overwriteDataOperationsArray.includes(fullOperation)) {
|
} else if (overwriteDataOperationsArray.includes(fullOperation)) {
|
||||||
returnData.push.apply(returnData, responseData);
|
returnData.push.apply(returnData, responseData);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
if (overwriteDataOperations.includes(fullOperation) || overwriteDataOperationsArray.includes(fullOperation)) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
} else {
|
||||||
|
items[i].json = { error: error.message };
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (overwriteDataOperations.includes(fullOperation) || overwriteDataOperationsArray.includes(fullOperation)) {
|
if (overwriteDataOperations.includes(fullOperation) || overwriteDataOperationsArray.includes(fullOperation)) {
|
||||||
|
|||||||
@@ -162,8 +162,9 @@ export class GoogleAnalytics implements INodeType {
|
|||||||
let endpoint = '';
|
let endpoint = '';
|
||||||
let responseData;
|
let responseData;
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
if (resource === 'report') {
|
try {
|
||||||
if (operation === 'get') {
|
if(resource === 'report') {
|
||||||
|
if(operation === 'get') {
|
||||||
//https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet
|
//https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet
|
||||||
method = 'POST';
|
method = 'POST';
|
||||||
endpoint = '/v4/reports:batchGet';
|
endpoint = '/v4/reports:batchGet';
|
||||||
@@ -280,6 +281,13 @@ export class GoogleAnalytics implements INodeType {
|
|||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -385,6 +385,8 @@ export class GoogleBooks implements INodeType {
|
|||||||
let responseData;
|
let responseData;
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
|
|
||||||
if (resource === 'volume') {
|
if (resource === 'volume') {
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
const volumeId = this.getNodeParameter('volumeId', i) as string;
|
const volumeId = this.getNodeParameter('volumeId', i) as string;
|
||||||
@@ -495,6 +497,14 @@ export class GoogleBooks implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(responseData)];
|
return [this.helpers.returnJsonArray(responseData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -606,6 +606,12 @@ export class GoogleCalendar implements INodeType {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Array.isArray(responseData)) {
|
||||||
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
|
} else if (responseData !== undefined) {
|
||||||
|
returnData.push(responseData as IDataObject);
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (this.continueOnFail() !== true) {
|
if (this.continueOnFail() !== true) {
|
||||||
throw error;
|
throw error;
|
||||||
@@ -619,12 +625,6 @@ export class GoogleCalendar implements INodeType {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Array.isArray(responseData)) {
|
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
|
||||||
} else if (responseData !== undefined) {
|
|
||||||
returnData.push(responseData as IDataObject);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ export class GoogleContacts implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'contact') {
|
if (resource === 'contact') {
|
||||||
//https://developers.google.com/calendar/v3/reference/events/insert
|
//https://developers.google.com/calendar/v3/reference/events/insert
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
@@ -485,12 +486,19 @@ export class GoogleContacts implements INodeType {
|
|||||||
responseData.contactId = responseData.resourceName.split('/')[1];
|
responseData.contactId = responseData.resourceName.split('/')[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (Array.isArray(responseData)) {
|
if (Array.isArray(responseData)) {
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1996,6 +1996,7 @@ export class GoogleDrive implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const options = this.getNodeParameter('options', i, {}) as IDataObject;
|
const options = this.getNodeParameter('options', i, {}) as IDataObject;
|
||||||
|
|
||||||
let queryFields = 'id, name';
|
let queryFields = 'id, name';
|
||||||
@@ -2427,6 +2428,17 @@ export class GoogleDrive implements INodeType {
|
|||||||
returnData.push(response as IDataObject);
|
returnData.push(response as IDataObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
if (resource === 'file' && operation === 'download') {
|
||||||
|
items[i].json = { error: error.message };
|
||||||
|
} else {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (resource === 'file' && operation === 'download') {
|
if (resource === 'file' && operation === 'download') {
|
||||||
// For file downloads the files get attached to the existing items
|
// For file downloads the files get attached to the existing items
|
||||||
|
|||||||
@@ -150,6 +150,7 @@ export class RealtimeDatabase implements INodeType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const projectId = this.getNodeParameter('projectId', i) as string;
|
const projectId = this.getNodeParameter('projectId', i) as string;
|
||||||
let method = 'GET', attributes = '';
|
let method = 'GET', attributes = '';
|
||||||
const document: IDataObject = {};
|
const document: IDataObject = {};
|
||||||
@@ -192,7 +193,13 @@ export class RealtimeDatabase implements INodeType {
|
|||||||
responseData = { success: true };
|
responseData = { success: true };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
if (Array.isArray(responseData)) {
|
if (Array.isArray(responseData)) {
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
} else if (typeof responseData === 'string' || typeof responseData === 'number') {
|
} else if (typeof responseData === 'string' || typeof responseData === 'number') {
|
||||||
|
|||||||
@@ -206,6 +206,7 @@ export class Gmail implements INodeType {
|
|||||||
let responseData;
|
let responseData;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'label') {
|
if (resource === 'label') {
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
//https://developers.google.com/gmail/api/v1/reference/users/labels/create
|
//https://developers.google.com/gmail/api/v1/reference/users/labels/create
|
||||||
@@ -330,6 +331,7 @@ export class Gmail implements INodeType {
|
|||||||
if (attachmentsUi.hasOwnProperty('attachmentsBinary')
|
if (attachmentsUi.hasOwnProperty('attachmentsBinary')
|
||||||
&& !isEmpty(attachmentsUi.attachmentsBinary)
|
&& !isEmpty(attachmentsUi.attachmentsBinary)
|
||||||
&& items[i].binary) {
|
&& items[i].binary) {
|
||||||
|
// @ts-ignore
|
||||||
for (const { property } of attachmentsUi.attachmentsBinary as IDataObject[]) {
|
for (const { property } of attachmentsUi.attachmentsBinary as IDataObject[]) {
|
||||||
for (const binaryProperty of (property as string).split(',')) {
|
for (const binaryProperty of (property as string).split(',')) {
|
||||||
if (items[i].binary![binaryProperty] !== undefined) {
|
if (items[i].binary![binaryProperty] !== undefined) {
|
||||||
@@ -414,6 +416,7 @@ export class Gmail implements INodeType {
|
|||||||
if (attachmentsUi.hasOwnProperty('attachmentsBinary')
|
if (attachmentsUi.hasOwnProperty('attachmentsBinary')
|
||||||
&& !isEmpty(attachmentsUi.attachmentsBinary)
|
&& !isEmpty(attachmentsUi.attachmentsBinary)
|
||||||
&& items[i].binary) {
|
&& items[i].binary) {
|
||||||
|
// @ts-ignore
|
||||||
for (const { property } of attachmentsUi.attachmentsBinary as IDataObject[]) {
|
for (const { property } of attachmentsUi.attachmentsBinary as IDataObject[]) {
|
||||||
for (const binaryProperty of (property as string).split(',')) {
|
for (const binaryProperty of (property as string).split(',')) {
|
||||||
if (items[i].binary![binaryProperty] !== undefined) {
|
if (items[i].binary![binaryProperty] !== undefined) {
|
||||||
@@ -630,6 +633,7 @@ export class Gmail implements INodeType {
|
|||||||
if (additionalFields.attachmentsUi) {
|
if (additionalFields.attachmentsUi) {
|
||||||
const attachmentsUi = additionalFields.attachmentsUi as IDataObject;
|
const attachmentsUi = additionalFields.attachmentsUi as IDataObject;
|
||||||
const attachmentsBinary = [];
|
const attachmentsBinary = [];
|
||||||
|
if (!isEmpty(attachmentsUi)) {
|
||||||
if (!isEmpty(attachmentsUi)) {
|
if (!isEmpty(attachmentsUi)) {
|
||||||
if (attachmentsUi.hasOwnProperty('attachmentsBinary')
|
if (attachmentsUi.hasOwnProperty('attachmentsBinary')
|
||||||
&& !isEmpty(attachmentsUi.attachmentsBinary)
|
&& !isEmpty(attachmentsUi.attachmentsBinary)
|
||||||
@@ -647,11 +651,13 @@ export class Gmail implements INodeType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
qs = {
|
qs = {
|
||||||
userId: 'me',
|
userId: 'me',
|
||||||
uploadType: 'media',
|
uploadType: 'media',
|
||||||
};
|
};
|
||||||
|
|
||||||
attachmentsList = attachmentsBinary;
|
attachmentsList = attachmentsBinary;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -800,6 +806,13 @@ export class Gmail implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (['draft', 'message'].includes(resource) && ['get', 'getAll'].includes(operation)) {
|
if (['draft', 'message'].includes(resource) && ['get', 'getAll'].includes(operation)) {
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
|
|||||||
@@ -1034,6 +1034,7 @@ export class GoogleSheets implements INodeType {
|
|||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
// append
|
// append
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
try {
|
||||||
const keyRow = parseInt(this.getNodeParameter('keyRow', 0) as string, 10);
|
const keyRow = parseInt(this.getNodeParameter('keyRow', 0) as string, 10);
|
||||||
|
|
||||||
const items = this.getInputData();
|
const items = this.getInputData();
|
||||||
@@ -1050,21 +1051,34 @@ export class GoogleSheets implements INodeType {
|
|||||||
// TODO: Should have something like add metadata which does not get passed through
|
// TODO: Should have something like add metadata which does not get passed through
|
||||||
|
|
||||||
return this.prepareOutputData(items);
|
return this.prepareOutputData(items);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return this.prepareOutputData([{json:{ error: error.message }}]);
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
} else if (operation === 'clear') {
|
} else if (operation === 'clear') {
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
// clear
|
// clear
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
try {
|
||||||
await sheet.clearData(sheet.encodeRange(range));
|
await sheet.clearData(sheet.encodeRange(range));
|
||||||
|
|
||||||
const items = this.getInputData();
|
const items = this.getInputData();
|
||||||
return this.prepareOutputData(items);
|
return this.prepareOutputData(items);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return this.prepareOutputData([{json:{ error: error.message }}]);
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
|
||||||
} else if (operation === 'create') {
|
} else if (operation === 'create') {
|
||||||
const returnData: IDataObject[] = [];
|
const returnData: IDataObject[] = [];
|
||||||
|
|
||||||
let responseData;
|
let responseData;
|
||||||
for (let i = 0; i < this.getInputData().length; i++) {
|
for (let i = 0; i < this.getInputData().length; i++) {
|
||||||
|
try {
|
||||||
const spreadsheetId = this.getNodeParameter('sheetId', i) as string;
|
const spreadsheetId = this.getNodeParameter('sheetId', i) as string;
|
||||||
const options = this.getNodeParameter('options', i, {}) as IDataObject;
|
const options = this.getNodeParameter('options', i, {}) as IDataObject;
|
||||||
const simple = this.getNodeParameter('simple', 0) as boolean;
|
const simple = this.getNodeParameter('simple', 0) as boolean;
|
||||||
@@ -1088,6 +1102,13 @@ export class GoogleSheets implements INodeType {
|
|||||||
delete responseData.replies;
|
delete responseData.replies;
|
||||||
}
|
}
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
@@ -1096,7 +1117,7 @@ export class GoogleSheets implements INodeType {
|
|||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
// delete
|
// delete
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
try {
|
||||||
const requests: IDataObject[] = [];
|
const requests: IDataObject[] = [];
|
||||||
|
|
||||||
const toDelete = this.getNodeParameter('toDelete', 0) as IToDelete;
|
const toDelete = this.getNodeParameter('toDelete', 0) as IToDelete;
|
||||||
@@ -1127,11 +1148,17 @@ export class GoogleSheets implements INodeType {
|
|||||||
|
|
||||||
const items = this.getInputData();
|
const items = this.getInputData();
|
||||||
return this.prepareOutputData(items);
|
return this.prepareOutputData(items);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return this.prepareOutputData([{json:{ error: error.message }}]);
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
} else if (operation === 'lookup') {
|
} else if (operation === 'lookup') {
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
// lookup
|
// lookup
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
try {
|
||||||
const sheetData = await sheet.getData(sheet.encodeRange(range), valueRenderMode);
|
const sheetData = await sheet.getData(sheet.encodeRange(range), valueRenderMode);
|
||||||
|
|
||||||
if (sheetData === undefined) {
|
if (sheetData === undefined) {
|
||||||
@@ -1160,11 +1187,17 @@ export class GoogleSheets implements INodeType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return [this.helpers.returnJsonArray({ error: error.message })];
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
} else if (operation === 'read') {
|
} else if (operation === 'read') {
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
// read
|
// read
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
try {
|
||||||
const rawData = this.getNodeParameter('rawData', 0) as boolean;
|
const rawData = this.getNodeParameter('rawData', 0) as boolean;
|
||||||
|
|
||||||
const sheetData = await sheet.getData(sheet.encodeRange(range), valueRenderMode);
|
const sheetData = await sheet.getData(sheet.encodeRange(range), valueRenderMode);
|
||||||
@@ -1191,12 +1224,19 @@ export class GoogleSheets implements INodeType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return [this.helpers.returnJsonArray({ error: error.message })];
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
|
||||||
} else if (operation === 'remove') {
|
} else if (operation === 'remove') {
|
||||||
const returnData: IDataObject[] = [];
|
const returnData: IDataObject[] = [];
|
||||||
|
|
||||||
let responseData;
|
let responseData;
|
||||||
for (let i = 0; i < this.getInputData().length; i++) {
|
for (let i = 0; i < this.getInputData().length; i++) {
|
||||||
|
try {
|
||||||
const sheetId = this.getNodeParameter('id', i) as string;
|
const sheetId = this.getNodeParameter('id', i) as string;
|
||||||
const spreadsheetId = this.getNodeParameter('sheetId', i) as string;
|
const spreadsheetId = this.getNodeParameter('sheetId', i) as string;
|
||||||
|
|
||||||
@@ -1209,6 +1249,13 @@ export class GoogleSheets implements INodeType {
|
|||||||
responseData = await googleApiRequest.call(this, 'POST', `/v4/spreadsheets/${spreadsheetId}:batchUpdate`, { requests });
|
responseData = await googleApiRequest.call(this, 'POST', `/v4/spreadsheets/${spreadsheetId}:batchUpdate`, { requests });
|
||||||
delete responseData.replies;
|
delete responseData.replies;
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
@@ -1216,7 +1263,7 @@ export class GoogleSheets implements INodeType {
|
|||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
// update
|
// update
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
try {
|
||||||
const rawData = this.getNodeParameter('rawData', 0) as boolean;
|
const rawData = this.getNodeParameter('rawData', 0) as boolean;
|
||||||
|
|
||||||
const items = this.getInputData();
|
const items = this.getInputData();
|
||||||
@@ -1250,6 +1297,12 @@ export class GoogleSheets implements INodeType {
|
|||||||
|
|
||||||
|
|
||||||
return this.prepareOutputData(items);
|
return this.prepareOutputData(items);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return this.prepareOutputData([{json:{ error: error.message }}]);
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1267,7 +1320,7 @@ export class GoogleSheets implements INodeType {
|
|||||||
// https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/create
|
// https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/create
|
||||||
|
|
||||||
for (let i = 0; i < this.getInputData().length; i++) {
|
for (let i = 0; i < this.getInputData().length; i++) {
|
||||||
|
try {
|
||||||
const title = this.getNodeParameter('title', i) as string;
|
const title = this.getNodeParameter('title', i) as string;
|
||||||
const sheetsUi = this.getNodeParameter('sheetsUi', i, {}) as IDataObject;
|
const sheetsUi = this.getNodeParameter('sheetsUi', i, {}) as IDataObject;
|
||||||
|
|
||||||
@@ -1300,6 +1353,13 @@ export class GoogleSheets implements INodeType {
|
|||||||
responseData = await googleApiRequest.call(this, 'POST', `/v4/spreadsheets`, body);
|
responseData = await googleApiRequest.call(this, 'POST', `/v4/spreadsheets`, body);
|
||||||
|
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -416,6 +416,8 @@ export class GoogleSlides implements INodeType {
|
|||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
if (resource === 'page') {
|
if (resource === 'page') {
|
||||||
|
|
||||||
// *********************************************************************
|
// *********************************************************************
|
||||||
@@ -547,6 +549,14 @@ export class GoogleSlides implements INodeType {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({json:{ error: error.message }});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [returnData];
|
return [returnData];
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ export class GoogleTasks implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
let body: IDataObject = {};
|
let body: IDataObject = {};
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'task') {
|
if (resource === 'task') {
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
body = {};
|
body = {};
|
||||||
@@ -273,6 +274,13 @@ export class GoogleTasks implements INodeType {
|
|||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -221,6 +221,7 @@ export class YouTube implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'channel') {
|
if (resource === 'channel') {
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
//https://developers.google.com/youtube/v3/docs/channels/list
|
//https://developers.google.com/youtube/v3/docs/channels/list
|
||||||
@@ -1149,6 +1150,13 @@ export class YouTube implements INodeType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (Array.isArray(responseData)) {
|
if (Array.isArray(responseData)) {
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
|
|||||||
@@ -194,6 +194,7 @@ export class Gotify implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'message') {
|
if (resource === 'message') {
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
|
|
||||||
@@ -256,6 +257,13 @@ export class Gotify implements INodeType {
|
|||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -236,6 +236,7 @@ export class GraphQL implements INodeType {
|
|||||||
|
|
||||||
const returnItems: INodeExecutionData[] = [];
|
const returnItems: INodeExecutionData[] = [];
|
||||||
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
||||||
|
try {
|
||||||
const requestMethod = this.getNodeParameter('requestMethod', itemIndex, 'POST') as string;
|
const requestMethod = this.getNodeParameter('requestMethod', itemIndex, 'POST') as string;
|
||||||
const endpoint = this.getNodeParameter('endpoint', itemIndex, '') as string;
|
const endpoint = this.getNodeParameter('endpoint', itemIndex, '') as string;
|
||||||
const requestFormat = this.getNodeParameter('requestFormat', itemIndex, 'graphql') as string;
|
const requestFormat = this.getNodeParameter('requestFormat', itemIndex, 'graphql') as string;
|
||||||
@@ -312,6 +313,13 @@ export class GraphQL implements INodeType {
|
|||||||
returnItems.push({ json: response });
|
returnItems.push({ json: response });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnItems.push({ json: { error: error.message } });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.prepareOutputData(returnItems);
|
return this.prepareOutputData(returnItems);
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ export class HackerNews implements INodeType {
|
|||||||
let returnAll = false;
|
let returnAll = false;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
let qs: IDataObject = {};
|
let qs: IDataObject = {};
|
||||||
let endpoint = '';
|
let endpoint = '';
|
||||||
let includeComments = false;
|
let includeComments = false;
|
||||||
@@ -376,7 +376,13 @@ export class HackerNews implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -245,6 +245,7 @@ export class Harvest implements INodeType {
|
|||||||
let qs: IDataObject;
|
let qs: IDataObject;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
body = {};
|
body = {};
|
||||||
qs = {};
|
qs = {};
|
||||||
|
|
||||||
@@ -946,6 +947,13 @@ export class Harvest implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
throw new NodeOperationError(this.getNode(), `The resource "${resource}" is not known!`);
|
throw new NodeOperationError(this.getNode(), `The resource "${resource}" is not known!`);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -172,6 +172,7 @@ export class HelpScout implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'conversation') {
|
if (resource === 'conversation') {
|
||||||
//https://developer.helpscout.com/mailbox-api/endpoints/conversations/create
|
//https://developer.helpscout.com/mailbox-api/endpoints/conversations/create
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
@@ -429,6 +430,13 @@ export class HelpScout implements INodeType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
if (Array.isArray(responseData)) {
|
if (Array.isArray(responseData)) {
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
|
|||||||
@@ -219,6 +219,7 @@ export class HtmlExtract implements INodeType {
|
|||||||
|
|
||||||
let item: INodeExecutionData;
|
let item: INodeExecutionData;
|
||||||
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
||||||
|
try {
|
||||||
const dataPropertyName = this.getNodeParameter('dataPropertyName', itemIndex) as string;
|
const dataPropertyName = this.getNodeParameter('dataPropertyName', itemIndex) as string;
|
||||||
const extractionValues = this.getNodeParameter('extractionValues', itemIndex) as IDataObject;
|
const extractionValues = this.getNodeParameter('extractionValues', itemIndex) as IDataObject;
|
||||||
const options = this.getNodeParameter('options', itemIndex, {}) as IDataObject;
|
const options = this.getNodeParameter('options', itemIndex, {}) as IDataObject;
|
||||||
@@ -273,6 +274,13 @@ export class HtmlExtract implements INodeType {
|
|||||||
}
|
}
|
||||||
returnData.push(newItem);
|
returnData.push(newItem);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ json: { error: error.message } });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.prepareOutputData(returnData);
|
return this.prepareOutputData(returnData);
|
||||||
|
|||||||
@@ -874,6 +874,7 @@ export class Hubspot implements INodeType {
|
|||||||
|
|
||||||
//https://legacydocs.hubspot.com/docs/methods/lists/contact-lists-overview
|
//https://legacydocs.hubspot.com/docs/methods/lists/contact-lists-overview
|
||||||
if (resource === 'contactList') {
|
if (resource === 'contactList') {
|
||||||
|
try {
|
||||||
//https://legacydocs.hubspot.com/docs/methods/lists/add_contact_to_list
|
//https://legacydocs.hubspot.com/docs/methods/lists/add_contact_to_list
|
||||||
if (operation === 'add') {
|
if (operation === 'add') {
|
||||||
const listId = this.getNodeParameter('listId', 0) as string;
|
const listId = this.getNodeParameter('listId', 0) as string;
|
||||||
@@ -902,8 +903,16 @@ export class Hubspot implements INodeType {
|
|||||||
responseData = await hubspotApiRequest.call(this, 'POST', `/contacts/v1/lists/${listId}/remove`, body);
|
responseData = await hubspotApiRequest.call(this, 'POST', `/contacts/v1/lists/${listId}/remove`, body);
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
} else {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
//https://developers.hubspot.com/docs/methods/contacts/create_or_update
|
//https://developers.hubspot.com/docs/methods/contacts/create_or_update
|
||||||
if (resource === 'contact') {
|
if (resource === 'contact') {
|
||||||
//https://developers.hubspot.com/docs/methods/companies/create_company
|
//https://developers.hubspot.com/docs/methods/companies/create_company
|
||||||
@@ -2407,6 +2416,13 @@ export class Hubspot implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -292,6 +292,7 @@ export class Hunter implements INodeType {
|
|||||||
const qs: IDataObject = {};
|
const qs: IDataObject = {};
|
||||||
let responseData;
|
let responseData;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
//https://hunter.io/api-documentation/v2#domain-search
|
//https://hunter.io/api-documentation/v2#domain-search
|
||||||
if (operation === 'domainSearch') {
|
if (operation === 'domainSearch') {
|
||||||
@@ -372,6 +373,13 @@ export class Hunter implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ export class Intercom implements INodeType {
|
|||||||
let qs: IDataObject;
|
let qs: IDataObject;
|
||||||
let responseData;
|
let responseData;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
qs = {};
|
qs = {};
|
||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
@@ -551,6 +552,13 @@ export class Intercom implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -250,6 +250,7 @@ export class InvoiceNinja implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
//Routes: https://github.com/invoiceninja/invoiceninja/blob/ff455c8ed9fd0c0326956175ecd509efa8bad263/routes/api.php
|
//Routes: https://github.com/invoiceninja/invoiceninja/blob/ff455c8ed9fd0c0326956175ecd509efa8bad263/routes/api.php
|
||||||
|
try {
|
||||||
if (resource === 'client') {
|
if (resource === 'client') {
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
||||||
@@ -801,6 +802,13 @@ export class InvoiceNinja implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -167,6 +167,7 @@ export class Kafka implements INodeType {
|
|||||||
|
|
||||||
let responseData: IDataObject[];
|
let responseData: IDataObject[];
|
||||||
|
|
||||||
|
try {
|
||||||
const options = this.getNodeParameter('options', 0) as IDataObject;
|
const options = this.getNodeParameter('options', 0) as IDataObject;
|
||||||
const sendInputData = this.getNodeParameter('sendInputData', 0) as boolean;
|
const sendInputData = this.getNodeParameter('sendInputData', 0) as boolean;
|
||||||
|
|
||||||
@@ -272,5 +273,12 @@ export class Kafka implements INodeType {
|
|||||||
await producer.disconnect();
|
await producer.disconnect();
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(responseData)];
|
return [this.helpers.returnJsonArray(responseData)];
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
return [this.helpers.returnJsonArray({ error: error.message })];
|
||||||
|
} else {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ export class Line implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
if (resource === 'notification') {
|
if (resource === 'notification') {
|
||||||
//https://notify-bot.line.me/doc/en/
|
//https://notify-bot.line.me/doc/en/
|
||||||
if (operation === 'send') {
|
if (operation === 'send') {
|
||||||
@@ -133,13 +134,20 @@ export class Line implements INodeType {
|
|||||||
responseData = await lineApiRequest.call(this, 'POST', '', {}, {}, 'https://notify-api.line.me/api/notify', { formData: body });
|
responseData = await lineApiRequest.call(this, 'POST', '', {}, {}, 'https://notify-api.line.me/api/notify', { formData: body });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (Array.isArray(responseData)) {
|
if (Array.isArray(responseData)) {
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
|
|
||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ export class LinkedIn implements INodeType {
|
|||||||
let body = {};
|
let body = {};
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'post') {
|
if (resource === 'post') {
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
const text = this.getNodeParameter('text', i) as string;
|
const text = this.getNodeParameter('text', i) as string;
|
||||||
@@ -249,6 +250,13 @@ export class LinkedIn implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -95,12 +95,20 @@ export class Mailcheck implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'email') {
|
if (resource === 'email') {
|
||||||
if (operation === 'check') {
|
if (operation === 'check') {
|
||||||
const email = this.getNodeParameter('email', i) as string;
|
const email = this.getNodeParameter('email', i) as string;
|
||||||
responseData = await mailCheckApiRequest.call(this, 'POST', '/singleEmail:check', { email });
|
responseData = await mailCheckApiRequest.call(this, 'POST', '/singleEmail:check', { email });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
if (Array.isArray(responseData)) {
|
if (Array.isArray(responseData)) {
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1862,6 +1862,7 @@ export class Mailchimp implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'listGroup') {
|
if (resource === 'listGroup') {
|
||||||
//https://mailchimp.com/developer/reference/lists/interest-categories/#get_/lists/-list_id-/interest-categories/-interest_category_id-
|
//https://mailchimp.com/developer/reference/lists/interest-categories/#get_/lists/-list_id-/interest-categories/-interest_category_id-
|
||||||
if (operation === 'getAll') {
|
if (operation === 'getAll') {
|
||||||
@@ -2267,6 +2268,13 @@ export class Mailchimp implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ export class MailerLite implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'subscriber') {
|
if (resource === 'subscriber') {
|
||||||
//https://developers.mailerlite.com/reference#create-a-subscriber
|
//https://developers.mailerlite.com/reference#create-a-subscriber
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
@@ -173,6 +173,13 @@ export class MailerLite implements INodeType {
|
|||||||
responseData = await mailerliteApiRequest.call(this, 'PUT', `/subscribers/${subscriberId}`, body);
|
responseData = await mailerliteApiRequest.call(this, 'PUT', `/subscribers/${subscriberId}`, body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (Array.isArray(responseData)) {
|
if (Array.isArray(responseData)) {
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
|
|||||||
@@ -115,6 +115,7 @@ export class Mailgun implements INodeType {
|
|||||||
let item: INodeExecutionData;
|
let item: INodeExecutionData;
|
||||||
|
|
||||||
for (let itemIndex = 0; itemIndex < length; itemIndex++) {
|
for (let itemIndex = 0; itemIndex < length; itemIndex++) {
|
||||||
|
try {
|
||||||
item = items[itemIndex];
|
item = items[itemIndex];
|
||||||
|
|
||||||
const fromEmail = this.getNodeParameter('fromEmail', itemIndex) as string;
|
const fromEmail = this.getNodeParameter('fromEmail', itemIndex) as string;
|
||||||
@@ -195,6 +196,13 @@ export class Mailgun implements INodeType {
|
|||||||
returnData.push({
|
returnData.push({
|
||||||
json: responseData,
|
json: responseData,
|
||||||
});
|
});
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ json: { error: error.message } });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return this.prepareOutputData(returnData);
|
return this.prepareOutputData(returnData);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,6 +117,7 @@ export class Mailjet implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'email') {
|
if (resource === 'email') {
|
||||||
//https://dev.mailjet.com/email/guides/send-api-v31/#send-a-basic-email
|
//https://dev.mailjet.com/email/guides/send-api-v31/#send-a-basic-email
|
||||||
if (operation === 'send') {
|
if (operation === 'send') {
|
||||||
@@ -287,6 +288,13 @@ export class Mailjet implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -738,6 +738,7 @@ export class Mandrill implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'message') {
|
if (resource === 'message') {
|
||||||
|
|
||||||
const options = this.getNodeParameter('options', i) as Options;
|
const options = this.getNodeParameter('options', i) as Options;
|
||||||
@@ -887,6 +888,13 @@ export class Mandrill implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -159,12 +159,20 @@ export class Matrix implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
const responseData = await handleMatrixCall.call(this, items[i], i, resource, operation);
|
const responseData = await handleMatrixCall.call(this, items[i], i, resource, operation);
|
||||||
if (Array.isArray(responseData)) {
|
if (Array.isArray(responseData)) {
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -1961,6 +1961,7 @@ export class Mattermost implements INodeType {
|
|||||||
let qs: IDataObject;
|
let qs: IDataObject;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
let endpoint = '';
|
let endpoint = '';
|
||||||
body = {};
|
body = {};
|
||||||
qs = {};
|
qs = {};
|
||||||
@@ -2389,6 +2390,13 @@ export class Mattermost implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -234,7 +234,7 @@ export class Mautic implements INodeType {
|
|||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
qs = {};
|
qs = {};
|
||||||
|
try {
|
||||||
if (resource === 'company') {
|
if (resource === 'company') {
|
||||||
//https://developer.mautic.org/#create-company
|
//https://developer.mautic.org/#create-company
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
@@ -615,6 +615,13 @@ export class Mautic implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -449,7 +449,7 @@ export class Medium implements INodeType {
|
|||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
qs = {};
|
qs = {};
|
||||||
|
try {
|
||||||
resource = this.getNodeParameter('resource', i) as string;
|
resource = this.getNodeParameter('resource', i) as string;
|
||||||
operation = this.getNodeParameter('operation', i) as string;
|
operation = this.getNodeParameter('operation', i) as string;
|
||||||
|
|
||||||
@@ -572,6 +572,13 @@ export class Medium implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -314,7 +314,7 @@ export class MessageBird implements INodeType {
|
|||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
qs = {};
|
qs = {};
|
||||||
|
try {
|
||||||
resource = this.getNodeParameter('resource', i) as string;
|
resource = this.getNodeParameter('resource', i) as string;
|
||||||
operation = this.getNodeParameter('operation', i) as string;
|
operation = this.getNodeParameter('operation', i) as string;
|
||||||
|
|
||||||
@@ -401,6 +401,13 @@ export class MessageBird implements INodeType {
|
|||||||
);
|
);
|
||||||
|
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -164,6 +164,7 @@ export class MicrosoftExcel implements INodeType {
|
|||||||
if (resource === 'table') {
|
if (resource === 'table') {
|
||||||
//https://docs.microsoft.com/en-us/graph/api/table-post-rows?view=graph-rest-1.0&tabs=http
|
//https://docs.microsoft.com/en-us/graph/api/table-post-rows?view=graph-rest-1.0&tabs=http
|
||||||
if (operation === 'addRow') {
|
if (operation === 'addRow') {
|
||||||
|
try {
|
||||||
// TODO: At some point it should be possible to use item dependent parameters.
|
// TODO: At some point it should be possible to use item dependent parameters.
|
||||||
// Is however important to then not make one separate request each.
|
// Is however important to then not make one separate request each.
|
||||||
const workbookId = this.getNodeParameter('workbook', 0) as string;
|
const workbookId = this.getNodeParameter('workbook', 0) as string;
|
||||||
@@ -201,10 +202,18 @@ export class MicrosoftExcel implements INodeType {
|
|||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
} else {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//https://docs.microsoft.com/en-us/graph/api/table-list-columns?view=graph-rest-1.0&tabs=http
|
//https://docs.microsoft.com/en-us/graph/api/table-list-columns?view=graph-rest-1.0&tabs=http
|
||||||
if (operation === 'getColumns') {
|
if (operation === 'getColumns') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
qs = {};
|
qs = {};
|
||||||
const workbookId = this.getNodeParameter('workbook', i) as string;
|
const workbookId = this.getNodeParameter('workbook', i) as string;
|
||||||
const worksheetId = this.getNodeParameter('worksheet', i) as string;
|
const worksheetId = this.getNodeParameter('worksheet', i) as string;
|
||||||
@@ -236,12 +245,20 @@ export class MicrosoftExcel implements INodeType {
|
|||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//https://docs.microsoft.com/en-us/graph/api/table-list-rows?view=graph-rest-1.0&tabs=http
|
//https://docs.microsoft.com/en-us/graph/api/table-list-rows?view=graph-rest-1.0&tabs=http
|
||||||
if (operation === 'getRows') {
|
if (operation === 'getRows') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
qs = {};
|
qs = {};
|
||||||
|
try {
|
||||||
const workbookId = this.getNodeParameter('workbook', i) as string;
|
const workbookId = this.getNodeParameter('workbook', i) as string;
|
||||||
const worksheetId = this.getNodeParameter('worksheet', i) as string;
|
const worksheetId = this.getNodeParameter('worksheet', i) as string;
|
||||||
const tableId = this.getNodeParameter('table', i) as string;
|
const tableId = this.getNodeParameter('table', i) as string;
|
||||||
@@ -279,11 +296,19 @@ export class MicrosoftExcel implements INodeType {
|
|||||||
const dataProperty = this.getNodeParameter('dataProperty', i) as string;
|
const dataProperty = this.getNodeParameter('dataProperty', i) as string;
|
||||||
returnData.push({ [dataProperty]: responseData });
|
returnData.push({ [dataProperty]: responseData });
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (operation === 'lookup') {
|
if (operation === 'lookup') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
qs = {};
|
qs = {};
|
||||||
|
try {
|
||||||
const workbookId = this.getNodeParameter('workbook', i) as string;
|
const workbookId = this.getNodeParameter('workbook', i) as string;
|
||||||
const worksheetId = this.getNodeParameter('worksheet', i) as string;
|
const worksheetId = this.getNodeParameter('worksheet', i) as string;
|
||||||
const tableId = this.getNodeParameter('table', i) as string;
|
const tableId = this.getNodeParameter('table', i) as string;
|
||||||
@@ -322,12 +347,20 @@ export class MicrosoftExcel implements INodeType {
|
|||||||
});
|
});
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (resource === 'workbook') {
|
if (resource === 'workbook') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
qs = {};
|
qs = {};
|
||||||
|
try {
|
||||||
//https://docs.microsoft.com/en-us/graph/api/worksheetcollection-add?view=graph-rest-1.0&tabs=http
|
//https://docs.microsoft.com/en-us/graph/api/worksheetcollection-add?view=graph-rest-1.0&tabs=http
|
||||||
if (operation === 'addWorksheet') {
|
if (operation === 'addWorksheet') {
|
||||||
const workbookId = this.getNodeParameter('workbook', i) as string;
|
const workbookId = this.getNodeParameter('workbook', i) as string;
|
||||||
@@ -360,11 +393,19 @@ export class MicrosoftExcel implements INodeType {
|
|||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (resource === 'worksheet') {
|
if (resource === 'worksheet') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
qs = {};
|
qs = {};
|
||||||
|
try {
|
||||||
//https://docs.microsoft.com/en-us/graph/api/workbook-list-worksheets?view=graph-rest-1.0&tabs=http
|
//https://docs.microsoft.com/en-us/graph/api/workbook-list-worksheets?view=graph-rest-1.0&tabs=http
|
||||||
if (operation === 'getAll') {
|
if (operation === 'getAll') {
|
||||||
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
||||||
@@ -415,6 +456,13 @@ export class MicrosoftExcel implements INodeType {
|
|||||||
returnData.push({ [dataProperty]: responseData });
|
returnData.push({ [dataProperty]: responseData });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ export class MicrosoftOneDrive implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'file') {
|
if (resource === 'file') {
|
||||||
//https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/driveitem_copy?view=odsp-graph-online
|
//https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/driveitem_copy?view=odsp-graph-online
|
||||||
if (operation === 'copy') {
|
if (operation === 'copy') {
|
||||||
@@ -255,6 +256,17 @@ export class MicrosoftOneDrive implements INodeType {
|
|||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
if (resource === 'file' && operation === 'download') {
|
||||||
|
items[i].json = { error: error.message };
|
||||||
|
} else {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (resource === 'file' && operation === 'download') {
|
if (resource === 'file' && operation === 'download') {
|
||||||
// For file downloads the files get attached to the existing items
|
// For file downloads the files get attached to the existing items
|
||||||
|
|||||||
@@ -153,6 +153,7 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
if (['draft', 'message'].includes(resource)) {
|
if (['draft', 'message'].includes(resource)) {
|
||||||
if (operation === 'delete') {
|
if (operation === 'delete') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const messageId = this.getNodeParameter('messageId', i) as string;
|
const messageId = this.getNodeParameter('messageId', i) as string;
|
||||||
responseData = await microsoftApiRequest.call(
|
responseData = await microsoftApiRequest.call(
|
||||||
this,
|
this,
|
||||||
@@ -161,11 +162,19 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
);
|
);
|
||||||
|
|
||||||
returnData.push({ success: true });
|
returnData.push({ success: true });
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const messageId = this.getNodeParameter('messageId', i) as string;
|
const messageId = this.getNodeParameter('messageId', i) as string;
|
||||||
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
||||||
|
|
||||||
@@ -196,11 +205,19 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
if (additionalFields.dataPropertyAttachmentsPrefixName) {
|
if (additionalFields.dataPropertyAttachmentsPrefixName) {
|
||||||
return [returnData as INodeExecutionData[]];
|
return [returnData as INodeExecutionData[]];
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'update') {
|
if (operation === 'update') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const messageId = this.getNodeParameter('messageId', i) as string;
|
const messageId = this.getNodeParameter('messageId', i) as string;
|
||||||
|
|
||||||
const updateFields = this.getNodeParameter('updateFields', i) as IDataObject;
|
const updateFields = this.getNodeParameter('updateFields', i) as IDataObject;
|
||||||
@@ -216,6 +233,13 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
{},
|
{},
|
||||||
);
|
);
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -224,7 +248,7 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
|
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
||||||
|
|
||||||
const subject = this.getNodeParameter('subject', i) as string;
|
const subject = this.getNodeParameter('subject', i) as string;
|
||||||
@@ -271,11 +295,19 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
);
|
);
|
||||||
|
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'send') {
|
if (operation === 'send') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const messageId = this.getNodeParameter('messageId', i);
|
const messageId = this.getNodeParameter('messageId', i);
|
||||||
const additionalFields = this.getNodeParameter('additionalFields', i, {}) as IDataObject;
|
const additionalFields = this.getNodeParameter('additionalFields', i, {}) as IDataObject;
|
||||||
|
|
||||||
@@ -298,6 +330,13 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
);
|
);
|
||||||
|
|
||||||
returnData.push({ success: true });
|
returnData.push({ success: true });
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -306,6 +345,7 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
|
|
||||||
if (operation === 'reply') {
|
if (operation === 'reply') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const messageId = this.getNodeParameter('messageId', i) as string;
|
const messageId = this.getNodeParameter('messageId', i) as string;
|
||||||
const replyType = this.getNodeParameter('replyType', i) as string;
|
const replyType = this.getNodeParameter('replyType', i) as string;
|
||||||
const comment = this.getNodeParameter('comment', i) as string;
|
const comment = this.getNodeParameter('comment', i) as string;
|
||||||
@@ -375,11 +415,19 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'getMime') {
|
if (operation === 'getMime') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const messageId = this.getNodeParameter('messageId', i) as string;
|
const messageId = this.getNodeParameter('messageId', i) as string;
|
||||||
const dataPropertyNameDownload = this.getNodeParameter('binaryPropertyName', i) as string;
|
const dataPropertyNameDownload = this.getNodeParameter('binaryPropertyName', i) as string;
|
||||||
const response = await microsoftApiRequest.call(
|
const response = await microsoftApiRequest.call(
|
||||||
@@ -416,12 +464,20 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
const fileName = `${messageId}.eml`;
|
const fileName = `${messageId}.eml`;
|
||||||
const data = Buffer.from(response.body as string, 'utf8');
|
const data = Buffer.from(response.body as string, 'utf8');
|
||||||
items[i].binary![dataPropertyNameDownload] = await this.helpers.prepareBinaryData(data as unknown as Buffer, fileName, mimeType);
|
items[i].binary![dataPropertyNameDownload] = await this.helpers.prepareBinaryData(data as unknown as Buffer, fileName, mimeType);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
items[i].json = { error: error.message };
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'getAll') {
|
if (operation === 'getAll') {
|
||||||
let additionalFields: IDataObject = {};
|
let additionalFields: IDataObject = {};
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
||||||
additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
||||||
|
|
||||||
@@ -463,6 +519,13 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push.apply(returnData, responseData);
|
returnData.push.apply(returnData, responseData);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (additionalFields.dataPropertyAttachmentsPrefixName) {
|
if (additionalFields.dataPropertyAttachmentsPrefixName) {
|
||||||
@@ -472,6 +535,7 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
|
|
||||||
if (operation === 'move') {
|
if (operation === 'move') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const messageId = this.getNodeParameter('messageId', i) as string;
|
const messageId = this.getNodeParameter('messageId', i) as string;
|
||||||
const destinationId = this.getNodeParameter('folderId', i) as string;
|
const destinationId = this.getNodeParameter('folderId', i) as string;
|
||||||
const body: IDataObject = {
|
const body: IDataObject = {
|
||||||
@@ -485,11 +549,19 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
body,
|
body,
|
||||||
);
|
);
|
||||||
returnData.push({ success: true });
|
returnData.push({ success: true });
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'send') {
|
if (operation === 'send') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
||||||
|
|
||||||
const toRecipients = this.getNodeParameter('toRecipients', i) as string;
|
const toRecipients = this.getNodeParameter('toRecipients', i) as string;
|
||||||
@@ -547,6 +619,13 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
{},
|
{},
|
||||||
);
|
);
|
||||||
returnData.push({ success: true });
|
returnData.push({ success: true });
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -555,6 +634,7 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
if (resource === 'messageAttachment') {
|
if (resource === 'messageAttachment') {
|
||||||
if (operation === 'add') {
|
if (operation === 'add') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const messageId = this.getNodeParameter('messageId', i) as string;
|
const messageId = this.getNodeParameter('messageId', i) as string;
|
||||||
const binaryPropertyName = this.getNodeParameter('binaryPropertyName', 0) as string;
|
const binaryPropertyName = this.getNodeParameter('binaryPropertyName', 0) as string;
|
||||||
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
||||||
@@ -636,11 +716,19 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
returnData.push({ success: true });
|
returnData.push({ success: true });
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'download') {
|
if (operation === 'download') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const messageId = this.getNodeParameter('messageId', i) as string;
|
const messageId = this.getNodeParameter('messageId', i) as string;
|
||||||
const attachmentId = this.getNodeParameter('attachmentId', i) as string;
|
const attachmentId = this.getNodeParameter('attachmentId', i) as string;
|
||||||
const dataPropertyNameDownload = this.getNodeParameter('binaryPropertyName', i) as string;
|
const dataPropertyNameDownload = this.getNodeParameter('binaryPropertyName', i) as string;
|
||||||
@@ -686,11 +774,19 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
items[i] = newItem;
|
items[i] = newItem;
|
||||||
const data = Buffer.from(response.body as string, 'utf8');
|
const data = Buffer.from(response.body as string, 'utf8');
|
||||||
items[i].binary![dataPropertyNameDownload] = await this.helpers.prepareBinaryData(data as unknown as Buffer, fileName, mimeType);
|
items[i].binary![dataPropertyNameDownload] = await this.helpers.prepareBinaryData(data as unknown as Buffer, fileName, mimeType);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
items[i].json = { error: error.message };
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const messageId = this.getNodeParameter('messageId', i) as string;
|
const messageId = this.getNodeParameter('messageId', i) as string;
|
||||||
const attachmentId = this.getNodeParameter('attachmentId', i) as string;
|
const attachmentId = this.getNodeParameter('attachmentId', i) as string;
|
||||||
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
||||||
@@ -709,11 +805,19 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
qs,
|
qs,
|
||||||
);
|
);
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'getAll') {
|
if (operation === 'getAll') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const messageId = this.getNodeParameter('messageId', i) as string;
|
const messageId = this.getNodeParameter('messageId', i) as string;
|
||||||
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
||||||
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
||||||
@@ -750,6 +854,13 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
responseData = responseData.value;
|
responseData = responseData.value;
|
||||||
}
|
}
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -757,6 +868,7 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
if (resource === 'folder') {
|
if (resource === 'folder') {
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const displayName = this.getNodeParameter('displayName', i) as string;
|
const displayName = this.getNodeParameter('displayName', i) as string;
|
||||||
const folderType = this.getNodeParameter('folderType', i) as string;
|
const folderType = this.getNodeParameter('folderType', i) as string;
|
||||||
const body: IDataObject = {
|
const body: IDataObject = {
|
||||||
@@ -785,11 +897,19 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
body,
|
body,
|
||||||
);
|
);
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'delete') {
|
if (operation === 'delete') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const folderId = this.getNodeParameter('folderId', i) as string;
|
const folderId = this.getNodeParameter('folderId', i) as string;
|
||||||
responseData = await microsoftApiRequest.call(
|
responseData = await microsoftApiRequest.call(
|
||||||
this,
|
this,
|
||||||
@@ -797,11 +917,19 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
`/mailFolders/${folderId}`,
|
`/mailFolders/${folderId}`,
|
||||||
);
|
);
|
||||||
returnData.push({ success: true });
|
returnData.push({ success: true });
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'get') {
|
if (operation === 'get') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const folderId = this.getNodeParameter('folderId', i) as string;
|
const folderId = this.getNodeParameter('folderId', i) as string;
|
||||||
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
||||||
|
|
||||||
@@ -820,11 +948,19 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
qs,
|
qs,
|
||||||
);
|
);
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'getAll') {
|
if (operation === 'getAll') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
||||||
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
||||||
|
|
||||||
@@ -857,11 +993,19 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
responseData = responseData.value;
|
responseData = responseData.value;
|
||||||
}
|
}
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'getChildren') {
|
if (operation === 'getChildren') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const folderId = this.getNodeParameter('folderId', i) as string;
|
const folderId = this.getNodeParameter('folderId', i) as string;
|
||||||
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
||||||
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
const additionalFields = this.getNodeParameter('additionalFields', i) as IDataObject;
|
||||||
@@ -894,11 +1038,19 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
responseData = responseData.value;
|
responseData = responseData.value;
|
||||||
}
|
}
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation === 'update') {
|
if (operation === 'update') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
const folderId = this.getNodeParameter('folderId', i) as string;
|
const folderId = this.getNodeParameter('folderId', i) as string;
|
||||||
const updateFields = this.getNodeParameter('updateFields', i) as IDataObject;
|
const updateFields = this.getNodeParameter('updateFields', i) as IDataObject;
|
||||||
|
|
||||||
@@ -913,12 +1065,20 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
body,
|
body,
|
||||||
);
|
);
|
||||||
returnData.push(responseData);
|
returnData.push(responseData);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (resource === 'folderMessage') {
|
if (resource === 'folderMessage') {
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (operation === 'getAll') {
|
if (operation === 'getAll') {
|
||||||
const folderId = this.getNodeParameter('folderId', i) as string;
|
const folderId = this.getNodeParameter('folderId', i) as string;
|
||||||
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
|
||||||
@@ -955,6 +1115,13 @@ export class MicrosoftOutlook implements INodeType {
|
|||||||
}
|
}
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -202,6 +202,7 @@ export class MicrosoftTeams implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'channel') {
|
if (resource === 'channel') {
|
||||||
//https://docs.microsoft.com/en-us/graph/api/channel-post?view=graph-rest-beta&tabs=http
|
//https://docs.microsoft.com/en-us/graph/api/channel-post?view=graph-rest-beta&tabs=http
|
||||||
if (operation === 'create') {
|
if (operation === 'create') {
|
||||||
@@ -385,6 +386,13 @@ export class MicrosoftTeams implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ export class Mindee implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'receipt') {
|
if (resource === 'receipt') {
|
||||||
if (operation === 'predict') {
|
if (operation === 'predict') {
|
||||||
const binaryPropertyName = this.getNodeParameter('binaryPropertyName', i) as string;
|
const binaryPropertyName = this.getNodeParameter('binaryPropertyName', i) as string;
|
||||||
@@ -210,12 +210,19 @@ export class Mindee implements INodeType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (Array.isArray(responseData)) {
|
if (Array.isArray(responseData)) {
|
||||||
returnData.push.apply(returnData, responseData as IDataObject[]);
|
returnData.push.apply(returnData, responseData as IDataObject[]);
|
||||||
} else if (responseData !== undefined) {
|
} else if (responseData !== undefined) {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ export class Mocean implements INodeType {
|
|||||||
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
||||||
body = {};
|
body = {};
|
||||||
qs = {};
|
qs = {};
|
||||||
|
try {
|
||||||
resource = this.getNodeParameter('resource', itemIndex, '') as string;
|
resource = this.getNodeParameter('resource', itemIndex, '') as string;
|
||||||
operation = this.getNodeParameter('operation',itemIndex,'') as string;
|
operation = this.getNodeParameter('operation',itemIndex,'') as string;
|
||||||
text = this.getNodeParameter('message', itemIndex, '') as string;
|
text = this.getNodeParameter('message', itemIndex, '') as string;
|
||||||
@@ -235,6 +235,13 @@ export class Mocean implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
throw new NodeOperationError(this.getNode(), `Unknown operation ${operation}`);
|
throw new NodeOperationError(this.getNode(), `Unknown operation ${operation}`);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
|
|||||||
@@ -262,6 +262,7 @@ export class MondayCom implements INodeType {
|
|||||||
const resource = this.getNodeParameter('resource', 0) as string;
|
const resource = this.getNodeParameter('resource', 0) as string;
|
||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'board') {
|
if (resource === 'board') {
|
||||||
if (operation === 'archive') {
|
if (operation === 'archive') {
|
||||||
const boardId = parseInt(this.getNodeParameter('boardId', i) as string, 10);
|
const boardId = parseInt(this.getNodeParameter('boardId', i) as string, 10);
|
||||||
@@ -757,6 +758,13 @@ export class MondayCom implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,17 +51,26 @@ export class MongoDb implements INodeType {
|
|||||||
// delete
|
// delete
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
|
||||||
|
try {
|
||||||
const { deletedCount } = await mdb
|
const { deletedCount } = await mdb
|
||||||
.collection(this.getNodeParameter('collection', 0) as string)
|
.collection(this.getNodeParameter('collection', 0) as string)
|
||||||
.deleteMany(JSON.parse(this.getNodeParameter('query', 0) as string));
|
.deleteMany(JSON.parse(this.getNodeParameter('query', 0) as string));
|
||||||
|
|
||||||
returnItems = this.helpers.returnJsonArray([{ deletedCount }]);
|
returnItems = this.helpers.returnJsonArray([{ deletedCount }]);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnItems = this.helpers.returnJsonArray({ error: error.message });
|
||||||
|
} else {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} else if (operation === 'find') {
|
} else if (operation === 'find') {
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
// find
|
// find
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
|
||||||
|
try {
|
||||||
let query = mdb
|
let query = mdb
|
||||||
.collection(this.getNodeParameter('collection', 0) as string)
|
.collection(this.getNodeParameter('collection', 0) as string)
|
||||||
.find(JSON.parse(this.getNodeParameter('query', 0) as string));
|
.find(JSON.parse(this.getNodeParameter('query', 0) as string));
|
||||||
@@ -82,11 +91,18 @@ export class MongoDb implements INodeType {
|
|||||||
const queryResult = await query.toArray();
|
const queryResult = await query.toArray();
|
||||||
|
|
||||||
returnItems = this.helpers.returnJsonArray(queryResult as IDataObject[]);
|
returnItems = this.helpers.returnJsonArray(queryResult as IDataObject[]);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnItems = this.helpers.returnJsonArray({ error: error.message } );
|
||||||
|
} else {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (operation === 'insert') {
|
} else if (operation === 'insert') {
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
// insert
|
// insert
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
try {
|
||||||
// Prepare the data to insert and copy it to be returned
|
// Prepare the data to insert and copy it to be returned
|
||||||
const fields = (this.getNodeParameter('fields', 0) as string)
|
const fields = (this.getNodeParameter('fields', 0) as string)
|
||||||
.split(',')
|
.split(',')
|
||||||
@@ -113,6 +129,13 @@ export class MongoDb implements INodeType {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnItems = this.helpers.returnJsonArray({ error: error.message });
|
||||||
|
} else {
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (operation === 'update') {
|
} else if (operation === 'update') {
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
// update
|
// update
|
||||||
@@ -143,6 +166,7 @@ export class MongoDb implements INodeType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (const item of updateItems) {
|
for (const item of updateItems) {
|
||||||
|
try {
|
||||||
if (item[updateKey] === undefined) {
|
if (item[updateKey] === undefined) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -156,11 +180,22 @@ export class MongoDb implements INodeType {
|
|||||||
await mdb
|
await mdb
|
||||||
.collection(this.getNodeParameter('collection', 0) as string)
|
.collection(this.getNodeParameter('collection', 0) as string)
|
||||||
.updateOne(filter, { $set: item }, updateOptions);
|
.updateOne(filter, { $set: item }, updateOptions);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
item.json = { error: error.message };
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
returnItems = this.helpers.returnJsonArray(updateItems as IDataObject[]);
|
returnItems = this.helpers.returnJsonArray(updateItems as IDataObject[]);
|
||||||
|
} else {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnItems = this.helpers.returnJsonArray({ json: { error: `The operation "${operation}" is not supported!` } });
|
||||||
} else {
|
} else {
|
||||||
throw new NodeOperationError(this.getNode(), `The operation "${operation}" is not supported!`);
|
throw new NodeOperationError(this.getNode(), `The operation "${operation}" is not supported!`);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
client.close();
|
client.close();
|
||||||
return this.prepareOutputData(returnItems);
|
return this.prepareOutputData(returnItems);
|
||||||
|
|||||||
@@ -252,6 +252,7 @@ export class MySql implements INodeType {
|
|||||||
// executeQuery
|
// executeQuery
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
|
||||||
|
try {
|
||||||
const queryQueue = items.map((item, index) => {
|
const queryQueue = items.map((item, index) => {
|
||||||
const rawQuery = this.getNodeParameter('query', index) as string;
|
const rawQuery = this.getNodeParameter('query', index) as string;
|
||||||
|
|
||||||
@@ -272,11 +273,20 @@ export class MySql implements INodeType {
|
|||||||
|
|
||||||
returnItems = this.helpers.returnJsonArray(queryResult as unknown as IDataObject[]);
|
returnItems = this.helpers.returnJsonArray(queryResult as unknown as IDataObject[]);
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnItems = this.helpers.returnJsonArray({ error: error.message });
|
||||||
|
} else {
|
||||||
|
await connection.end();
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (operation === 'insert') {
|
} else if (operation === 'insert') {
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
// insert
|
// insert
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
|
||||||
|
try {
|
||||||
const table = this.getNodeParameter('table', 0) as string;
|
const table = this.getNodeParameter('table', 0) as string;
|
||||||
const columnString = this.getNodeParameter('columns', 0) as string;
|
const columnString = this.getNodeParameter('columns', 0) as string;
|
||||||
const columns = columnString.split(',').map(column => column.trim());
|
const columns = columnString.split(',').map(column => column.trim());
|
||||||
@@ -292,12 +302,21 @@ export class MySql implements INodeType {
|
|||||||
const queryResult = await connection.query(insertSQL, queryItems);
|
const queryResult = await connection.query(insertSQL, queryItems);
|
||||||
|
|
||||||
returnItems = this.helpers.returnJsonArray(queryResult[0] as unknown as IDataObject);
|
returnItems = this.helpers.returnJsonArray(queryResult[0] as unknown as IDataObject);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnItems = this.helpers.returnJsonArray({ error: error.message });
|
||||||
|
} else {
|
||||||
|
await connection.end();
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} else if (operation === 'update') {
|
} else if (operation === 'update') {
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
// update
|
// update
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
|
||||||
|
try {
|
||||||
const table = this.getNodeParameter('table', 0) as string;
|
const table = this.getNodeParameter('table', 0) as string;
|
||||||
const updateKey = this.getNodeParameter('updateKey', 0) as string;
|
const updateKey = this.getNodeParameter('updateKey', 0) as string;
|
||||||
const columnString = this.getNodeParameter('columns', 0) as string;
|
const columnString = this.getNodeParameter('columns', 0) as string;
|
||||||
@@ -313,10 +332,22 @@ export class MySql implements INodeType {
|
|||||||
const queryResult = await Promise.all(queryQueue);
|
const queryResult = await Promise.all(queryQueue);
|
||||||
returnItems = this.helpers.returnJsonArray(queryResult.map(result => result[0]) as unknown as IDataObject[]);
|
returnItems = this.helpers.returnJsonArray(queryResult.map(result => result[0]) as unknown as IDataObject[]);
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnItems = this.helpers.returnJsonArray({ error: error.message });
|
||||||
|
} else {
|
||||||
|
await connection.end();
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnItems = this.helpers.returnJsonArray({ error: `The operation "${operation}" is not supported!` });
|
||||||
} else {
|
} else {
|
||||||
await connection.end();
|
await connection.end();
|
||||||
throw new NodeOperationError(this.getNode(), `The operation "${operation}" is not supported!`);
|
throw new NodeOperationError(this.getNode(), `The operation "${operation}" is not supported!`);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
await connection.end();
|
await connection.end();
|
||||||
|
|
||||||
|
|||||||
@@ -933,6 +933,7 @@ export class Nasa implements INodeType {
|
|||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
let endpoint = '';
|
let endpoint = '';
|
||||||
let includeCloseApproachData = false;
|
let includeCloseApproachData = false;
|
||||||
|
|
||||||
@@ -1223,6 +1224,19 @@ export class Nasa implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
if (resource === 'earthImagery' && operation === 'get') {
|
||||||
|
items[i].json = { error: error.message };
|
||||||
|
} else if (resource === 'astronomyPictureOfTheDay' && operation === 'get' && download === true) {
|
||||||
|
items[i].json = { error: error.message };
|
||||||
|
} else {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (resource === 'earthImagery' && operation === 'get') {
|
if (resource === 'earthImagery' && operation === 'get') {
|
||||||
|
|||||||
@@ -806,6 +806,7 @@ export class NextCloud implements INodeType {
|
|||||||
let qs;
|
let qs;
|
||||||
|
|
||||||
for (let i = 0; i < items.length; i++) {
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
try {
|
||||||
if (resource === 'file') {
|
if (resource === 'file') {
|
||||||
if (operation === 'download') {
|
if (operation === 'download') {
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
@@ -999,8 +1000,12 @@ export class NextCloud implements INodeType {
|
|||||||
try {
|
try {
|
||||||
responseData = await nextCloudApiRequest.call(this, requestMethod, endpoint, body, headers, encoding, qs);
|
responseData = await nextCloudApiRequest.call(this, requestMethod, endpoint, body, headers, encoding, qs);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (this.continueOnFail() === true) {
|
if (this.continueOnFail()) {
|
||||||
returnData.push({ error });
|
if (resource === 'file' && operation === 'download') {
|
||||||
|
items[i].json = { error: error.message };
|
||||||
|
} else {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1130,6 +1135,17 @@ export class NextCloud implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
if (resource === 'file' && operation === 'download') {
|
||||||
|
items[i].json = { error: error.message };
|
||||||
|
} else {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -145,6 +145,7 @@ export class OpenThesaurus implements INodeType {
|
|||||||
const operation = this.getNodeParameter('operation', 0) as string;
|
const operation = this.getNodeParameter('operation', 0) as string;
|
||||||
|
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
try {
|
||||||
if (operation === 'getSynonyms') {
|
if (operation === 'getSynonyms') {
|
||||||
const text = this.getNodeParameter('text', i) as string;
|
const text = this.getNodeParameter('text', i) as string;
|
||||||
const options = this.getNodeParameter('options', i) as IDataObject;
|
const options = this.getNodeParameter('options', i) as IDataObject;
|
||||||
@@ -161,6 +162,13 @@ export class OpenThesaurus implements INodeType {
|
|||||||
} else {
|
} else {
|
||||||
returnData.push(responseData as IDataObject);
|
returnData.push(responseData as IDataObject);
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (this.continueOnFail()) {
|
||||||
|
returnData.push({ error: error.message });
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return [this.helpers.returnJsonArray(returnData)];
|
return [this.helpers.returnJsonArray(returnData)];
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user