n8n-nodes-gohighlevel
Version:
n8n node for GoHighLevel API v2
64 lines (51 loc) • 2.08 kB
text/typescript
import { IExecuteFunctions, IDataObject } from 'n8n-workflow';
import { ICustomField } from './customField.types';
import { GoHighLevelManager } from '@src/utils/gohighlevel';
export async function handleCustomFieldOperations(
this: IExecuteFunctions,
operation: string,
i: number,
): Promise<IDataObject | IDataObject[]> {
const GHLEngine = await GoHighLevelManager.getInstance(this);
if (operation === 'create') {
const model = this.getNodeParameter('model', i) as ICustomField['model'];
const data: ICustomField = {
name: this.getNodeParameter('name', i) as string,
dataType: this.getNodeParameter('dataType', i) as ICustomField['dataType'],
model,
...this.getNodeParameter('additionalFields', i, {}) as IDataObject,
};
if (data.dataType === 'SELECT') {
const options = (this.getNodeParameter('options', i) as string).split(',').map(opt => opt.trim());
data.options = options;
}
const defaultValue = this.getNodeParameter('defaultValue', i) as string;
if (defaultValue) {
data.defaultValue = defaultValue;
}
return GHLEngine.createCustomField(model, data);
}
if (operation === 'update') {
const customFieldId = this.getNodeParameter('customFieldId', i) as string;
const data = {
...this.getNodeParameter('additionalFields', i, {}) as IDataObject,
};
if (data.type === 'select') {
const options = (this.getNodeParameter('options', i) as string).split(',').map(opt => opt.trim());
data.options = options;
}
return GHLEngine.updateCustomField(customFieldId, data);
}
if (operation === 'get') {
const customFieldId = this.getNodeParameter('customFieldId', i) as string;
return GHLEngine.getCustomField(customFieldId);
}
if (operation === 'getAll') {
return GHLEngine.getCustomFields();
}
if (operation === 'delete') {
const customFieldId = this.getNodeParameter('customFieldId', i) as string;
return GHLEngine.deleteCustomField(customFieldId);
}
throw new Error(`Unknown operation: ${operation}`);
}