UNPKG

@panoptic-it-solutions/n8n-nodes-datto-rmm

Version:

n8n node for Datto RMM integration

100 lines 4.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.executeAlertOperation = executeAlertOperation; const n8n_workflow_1 = require("n8n-workflow"); const api_helper_1 = require("../../helpers/api.helper"); const errorHandler_1 = require("../../helpers/errorHandler"); async function executeAlertOperation() { const items = this.getInputData(); const operation = this.getNodeParameter('operation', 0); const returnData = []; return (0, errorHandler_1.handleErrors)(this, async () => { for (let i = 0; i < items.length; i++) { try { let responseData; switch (operation) { case 'get': { const alertUid = this.getNodeParameter('alertUid', i); responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'GET', `/api/v2/alert/${alertUid}`); } break; case 'resolve': { const alertUid = this.getNodeParameter('alertUid', i); const resolutionNote = this.getNodeParameter('resolutionNote', i, ''); const body = {}; if (resolutionNote.trim() !== '') { body.resolutionNote = resolutionNote.trim(); } responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'POST', `/api/v2/alert/${alertUid}/resolve`, body); } break; case 'mute': { const alertUid = this.getNodeParameter('alertUid', i); responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'POST', `/api/v2/alert/${alertUid}/mute`, {}); } break; case 'unmute': { const alertUid = this.getNodeParameter('alertUid', i); responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'POST', `/api/v2/alert/${alertUid}/unmute`, {}); } break; default: throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`, { itemIndex: i, }); } if (Array.isArray(responseData)) { responseData.forEach((item) => { returnData.push({ json: item, pairedItem: { item: i }, }); }); } else if (responseData && typeof responseData === 'object') { if (responseData.data && Array.isArray(responseData.data)) { responseData.data.forEach((item) => { returnData.push({ json: item, pairedItem: { item: i }, }); }); } else { returnData.push({ json: responseData, pairedItem: { item: i }, }); } } else { returnData.push({ json: { success: true, operation, alertUid: this.getNodeParameter('alertUid', i), message: `Alert ${operation} completed successfully`, }, pairedItem: { item: i }, }); } } catch (error) { if (this.continueOnFail()) { returnData.push({ json: { error: error.message }, pairedItem: { item: i }, }); continue; } throw error; } } return [returnData]; }); } //# sourceMappingURL=execute.js.map