feat(editor): Improve errors in output panel (#8644)

Co-authored-by: Michael Kret <michael.k@radency.com>
This commit is contained in:
Giulio Andreini
2024-03-07 17:08:01 +01:00
committed by GitHub
parent 6e2aa405fc
commit 5301323906
38 changed files with 772 additions and 287 deletions

View File

@@ -15,7 +15,7 @@ import type {
INodeTypeDescription,
JsonObject,
} from 'n8n-workflow';
import { NodeOperationError } from 'n8n-workflow';
import { NodeApiError, NodeOperationError } from 'n8n-workflow';
import { snakeCase } from 'change-case';
import { generatePairedItemData } from '../../../utils/utilities';
@@ -47,6 +47,8 @@ import type { IForm } from './FormInterface';
import type { IAssociation, IDeal } from './DealInterface';
import set from 'lodash/set';
export class HubspotV2 implements INodeType {
description: INodeTypeDescription;
@@ -3058,21 +3060,17 @@ export class HubspotV2 implements INodeType {
error.cause.error?.validationResults &&
error.cause.error.validationResults[0].error === 'INVALID_EMAIL'
) {
throw new NodeOperationError(
this.getNode(),
error.cause.error.validationResults[0].message as string,
);
const message = error.cause.error.validationResults[0].message as string;
set(error, 'message', message);
}
if (error.cause.error?.message !== 'The resource you are requesting could not be found') {
if (error.httpCode === '404' && error.description === 'resource not found') {
throw new NodeOperationError(
this.getNode(),
`${error.node.parameters.resource} #${
error.node.parameters[`${error.node.parameters.resource}Id`].value
} could not be found. Check your ${error.node.parameters.resource} ID is correct`,
);
const message = `${error.node.parameters.resource} #${
error.node.parameters[`${error.node.parameters.resource}Id`].value
} could not be found. Check your ${error.node.parameters.resource} ID is correct`;
set(error, 'message', message);
}
throw new NodeOperationError(this.getNode(), error as string);
}
if (this.continueOnFail()) {
returnData.push({
@@ -3081,6 +3079,9 @@ export class HubspotV2 implements INodeType {
});
continue;
}
if (error instanceof NodeApiError) {
set(error, 'context.itemIndex', i);
}
throw error;
}
}