n8n-nodes-gohighlevel
Version:
n8n node for GoHighLevel API v2
72 lines (59 loc) • 2.59 kB
text/typescript
import { GoHighLevelManager } from '@src/utils/gohighlevel';
import { IExecuteFunctions, IDataObject } from 'n8n-workflow';
export async function handleCompanyOperations(
this: IExecuteFunctions,
operation: string,
i: number,
): Promise<IDataObject | IDataObject[]> {
const GHLEngine = await GoHighLevelManager.getInstance(this);
if (operation === 'create') {
const data = {
name: this.getNodeParameter('name', i) as string,
website: this.getNodeParameter('website', i) as string,
industry: this.getNodeParameter('industry', i) as string,
description: this.getNodeParameter('description', i) as string,
...this.getNodeParameter('additionalFields', i, {}) as IDataObject,
};
return GHLEngine.createCompany(data);
}
if (operation === 'update') {
const companyId = this.getNodeParameter('companyId', i) as string;
const data = {
name: this.getNodeParameter('name', i) as string,
website: this.getNodeParameter('website', i) as string,
industry: this.getNodeParameter('industry', i) as string,
description: this.getNodeParameter('description', i) as string,
...this.getNodeParameter('additionalFields', i, {}) as IDataObject,
};
return GHLEngine.updateCompany(companyId, data);
}
if (operation === 'get') {
const companyId = this.getNodeParameter('companyId', i) as string;
return GHLEngine.getCompany(companyId);
}
if (operation === 'getAll') {
const returnAll = this.getNodeParameter('returnAll', i) as boolean;
const filters = this.getNodeParameter('filters', i) as IDataObject;
if (returnAll) {
return GHLEngine.getCompanies({ params: filters });
} else {
const limit = this.getNodeParameter('limit', i) as number;
return GHLEngine.getCompanies({ params: { ...filters, limit } });
}
}
if (operation === 'delete') {
const companyId = this.getNodeParameter('companyId', i) as string;
return GHLEngine.deleteCompany(companyId);
}
if (operation === 'addTag') {
const companyId = this.getNodeParameter('companyId', i) as string;
const tags = (this.getNodeParameter('tags', i) as string).split(',').map(tag => tag.trim());
return GHLEngine.addTagsToCompany(companyId, tags);
}
if (operation === 'removeTag') {
const companyId = this.getNodeParameter('companyId', i) as string;
const tags = (this.getNodeParameter('tags', i) as string).split(',').map(tag => tag.trim());
return GHLEngine.removeTagsFromCompany(companyId, tags);
}
throw new Error(`Unknown operation: ${operation}`);
}