UNPKG

n8n-nodes-gohighlevel

Version:
64 lines (51 loc) 2.08 kB
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}`); }