UNPKG

n8n-nodes-mautic-advanced

Version:

Enhanced n8n node for Mautic with comprehensive API coverage including tags, campaigns, categories, and advanced contact management

100 lines (99 loc) 4.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.executeNoteOperation = void 0; const n8n_workflow_1 = require("n8n-workflow"); const ApiHelpers_1 = require("../utils/ApiHelpers"); const DataHelpers_1 = require("../utils/DataHelpers"); async function executeNoteOperation(context, operation, i) { let responseData; try { switch (operation) { case 'create': responseData = await createNote(context, i); break; case 'update': responseData = await updateNote(context, i); break; case 'get': responseData = await getNote(context, i); break; case 'getAll': responseData = await getAllNotes(context, i); break; case 'delete': responseData = await deleteNote(context, i); break; default: throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Operation '${operation}' is not supported for Note resource.`, { itemIndex: i }); } return context.helpers.returnJsonArray((0, DataHelpers_1.wrapSingleItem)(responseData)); } catch (error) { return (0, ApiHelpers_1.handleApiError)(context, error, operation, 'Note'); } } exports.executeNoteOperation = executeNoteOperation; async function createNote(context, itemIndex) { const lead = (0, ApiHelpers_1.getRequiredParam)(context, 'lead', itemIndex); const text = (0, ApiHelpers_1.getRequiredParam)(context, 'text', itemIndex); const type = (0, ApiHelpers_1.getOptionalParam)(context, 'type', itemIndex, 'general'); const datetime = (0, ApiHelpers_1.getOptionalParam)(context, 'datetime', itemIndex, ''); const body = { lead, text, type, }; if (datetime) { body.datetime = datetime; } const endpoint = '/notes/new'; const response = await (0, ApiHelpers_1.makeApiRequest)(context, 'POST', endpoint, body); return response.note; } async function updateNote(context, itemIndex) { const noteId = (0, ApiHelpers_1.getRequiredParam)(context, 'noteId', itemIndex); const createIfNotFound = (0, ApiHelpers_1.getOptionalParam)(context, 'createIfNotFound', itemIndex, false); const updateFields = (0, ApiHelpers_1.getOptionalParam)(context, 'updateFields', itemIndex, {}); const body = {}; if (updateFields.text !== undefined) { body.text = updateFields.text; } if (updateFields.type !== undefined) { body.type = updateFields.type; } if (updateFields.datetime !== undefined) { body.datetime = updateFields.datetime; } const endpoint = `/notes/${noteId}/edit`; const method = createIfNotFound ? 'PUT' : 'PATCH'; const response = await (0, ApiHelpers_1.makeApiRequest)(context, method, endpoint, body); return response.note; } async function getNote(context, itemIndex) { const noteId = (0, ApiHelpers_1.getRequiredParam)(context, 'noteId', itemIndex); const endpoint = `/notes/${noteId}`; const response = await (0, ApiHelpers_1.makeApiRequest)(context, 'GET', endpoint); return (0, DataHelpers_1.convertNumericStrings)(response.note); } async function getAllNotes(context, itemIndex) { const returnAll = (0, ApiHelpers_1.getOptionalParam)(context, 'returnAll', itemIndex, false); const limit = (0, ApiHelpers_1.getOptionalParam)(context, 'limit', itemIndex, 50); const options = (0, ApiHelpers_1.getOptionalParam)(context, 'options', itemIndex, {}); const query = (0, DataHelpers_1.buildQueryFromOptions)(options); if (returnAll) { const result = await (0, ApiHelpers_1.makePaginatedRequest)(context, 'notes', 'GET', '/notes', {}, query); return (0, DataHelpers_1.convertNumericStrings)(result); } else { query.limit = limit; const response = await (0, ApiHelpers_1.makeApiRequest)(context, 'GET', '/notes', {}, query); const data = Object.values(response.notes || {}); return (0, DataHelpers_1.convertNumericStrings)(data); } } async function deleteNote(context, itemIndex) { const noteId = (0, ApiHelpers_1.getRequiredParam)(context, 'noteId', itemIndex); const endpoint = `/notes/${noteId}/delete`; const response = await (0, ApiHelpers_1.makeApiRequest)(context, 'DELETE', endpoint); return response.note; }