n8n-nodes-gohighlevel
Version:
n8n node for GoHighLevel API v2
138 lines • 5.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GoHighLevelV2 = void 0;
const n8n_workflow_1 = require("n8n-workflow");
const resources_1 = require("./src/resources");
const gohighlevel_1 = require("./src/utils/gohighlevel");
class GoHighLevelV2 {
constructor() {
this.description = {
displayName: 'GoHighLevel V2',
name: 'goHighLevelV2',
icon: 'file:gohighlevel.svg',
group: ['transform'],
version: 1,
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
description: 'Consume GoHighLevel V2 API',
defaults: {
name: 'GoHighLevel V2',
},
inputs: ['main'],
outputs: ['main'],
credentials: [
{
name: 'goHighLevelOAuth2Api',
required: true,
},
],
requestDefaults: {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
'Version': '2021-07-28',
},
},
properties: [
{
displayName: 'Resource',
name: 'resource',
type: 'options',
noDataExpression: true,
options: [
{
name: 'Contact',
value: 'contact',
},
{
name: 'Company',
value: 'company',
},
{
name: 'Opportunity',
value: 'opportunity',
},
{
name: 'Custom Field',
value: 'customField',
},
],
default: 'contact',
},
...resources_1.contactOperations,
...resources_1.contactFields,
...resources_1.companyOperations,
...resources_1.companyFields,
...resources_1.opportunityOperations,
...resources_1.opportunityFields,
],
};
this.methods = {
loadOptions: {
async getCustomFields() {
const GHLEngine = await gohighlevel_1.GoHighLevelManager.getInstance(this);
const customFields = await GHLEngine.getCustomFields();
return customFields.map((field) => ({
name: field.name,
value: field.id || '',
}));
},
async getOpportunityCustomFields() {
const GHLEngine = await gohighlevel_1.GoHighLevelManager.getInstance(this);
const customFields = await GHLEngine.getCustomFields('opportunity');
return customFields.map((field) => ({
name: field.name,
value: field.id || '',
}));
},
async getContactCustomFields() {
const GHLEngine = await gohighlevel_1.GoHighLevelManager.getInstance(this);
const customFields = await GHLEngine.getCustomFields('contact');
return customFields.map((field) => ({
name: field.name,
value: field.id || '',
}));
},
},
};
}
async execute() {
const items = this.getInputData();
const returnData = [];
const resource = this.getNodeParameter('resource', 0);
const operation = this.getNodeParameter('operation', 0);
for (let i = 0; i < items.length; i++) {
try {
let responseData;
switch (resource) {
case 'contact':
responseData = await resources_1.handleContactOperations.call(this, operation, i);
break;
case 'company':
responseData = await resources_1.handleCompanyOperations.call(this, operation, i);
break;
case 'opportunity':
responseData = await resources_1.handleOpportunityOperations.call(this, operation, i);
break;
default:
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The resource "${resource}" is not known!`);
}
if (Array.isArray(responseData)) {
returnData.push.apply(returnData, responseData.map(item => ({ json: item })));
}
else {
returnData.push({ json: responseData });
}
}
catch (error) {
if (this.continueOnFail()) {
returnData.push({ json: { error: error.message } });
continue;
}
throw error;
}
}
return [returnData];
}
}
exports.GoHighLevelV2 = GoHighLevelV2;
//# sourceMappingURL=GoHighLevelV2.node.js.map