@panoptic-it-solutions/n8n-nodes-datto-rmm
Version:
n8n node for Datto RMM integration
100 lines • 4.45 kB
JavaScript
;
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