UNPKG

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

Version:

n8n node for Datto RMM integration

211 lines 11.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.executeSiteOperation = executeSiteOperation; const n8n_workflow_1 = require("n8n-workflow"); const api_helper_1 = require("../../helpers/api.helper"); const errorHandler_1 = require("../../helpers/errorHandler"); async function executeSiteOperation() { 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 siteUid = this.getNodeParameter('siteUid', i); responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'GET', `/api/v2/site/${siteUid}`); } break; case 'getMany': { const retrieveAll = this.getNodeParameter('retrieveAll', i, true); const siteName = this.getNodeParameter('siteName', i, ''); const qs = {}; if (siteName) { qs.siteName = siteName; } if (retrieveAll) { const allSites = await api_helper_1.dattoRmmApiRequestAllItems.call(this, 'GET', '/api/v2/account/sites', {}, qs); responseData = { sites: allSites }; } else { const page = this.getNodeParameter('page', i, 0); const max = this.getNodeParameter('max', i, 100); qs.page = page; qs.max = max; responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'GET', '/api/v2/account/sites', {}, qs); } } break; case 'create': { const name = this.getNodeParameter('name', i); const description = this.getNodeParameter('description', i, ''); const notes = this.getNodeParameter('notes', i, ''); const onDemand = this.getNodeParameter('onDemand', i, false); const splashtopAutoInstall = this.getNodeParameter('splashtopAutoInstall', i, false); const body = { name, onDemand, splashtopAutoInstall, }; if (description) body.description = description; if (notes) body.notes = notes; responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'PUT', '/api/v2/site', body); } break; case 'update': { const siteUid = this.getNodeParameter('siteUid', i); const name = this.getNodeParameter('name', i); const description = this.getNodeParameter('description', i, ''); const notes = this.getNodeParameter('notes', i, ''); const onDemand = this.getNodeParameter('onDemand', i, false); const splashtopAutoInstall = this.getNodeParameter('splashtopAutoInstall', i, false); const body = { name, onDemand, splashtopAutoInstall, }; if (description) body.description = description; if (notes) body.notes = notes; responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'POST', `/api/v2/site/${siteUid}`, body); } break; case 'getDevices': { const siteUid = this.getNodeParameter('siteUid', i); const retrieveAll = this.getNodeParameter('retrieveAll', i, true); const filterId = this.getNodeParameter('filterId', i, 0); const hostname = this.getNodeParameter('hostname', i, ''); const deviceType = this.getNodeParameter('deviceType', i, ''); const operatingSystem = this.getNodeParameter('operatingSystem', i, ''); const qs = {}; if (filterId) qs.filterId = filterId; if (hostname) qs.hostname = hostname; if (deviceType) qs.deviceType = deviceType; if (operatingSystem) qs.operatingSystem = operatingSystem; if (retrieveAll) { const allDevices = await api_helper_1.dattoRmmApiRequestAllItems.call(this, 'GET', `/api/v2/site/${siteUid}/devices`, {}, qs); responseData = { devices: allDevices }; } else { const page = this.getNodeParameter('page', i, 0); const max = this.getNodeParameter('max', i, 100); qs.page = page; qs.max = max; responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'GET', `/api/v2/site/${siteUid}/devices`, {}, qs); } } break; case 'getOpenAlerts': { const siteUid = this.getNodeParameter('siteUid', i); const retrieveAll = this.getNodeParameter('retrieveAll', i, true); const muted = this.getNodeParameter('muted', i, false); const qs = { muted }; if (retrieveAll) { const allAlerts = await api_helper_1.dattoRmmApiRequestAllItems.call(this, 'GET', `/api/v2/site/${siteUid}/alerts/open`, {}, qs); responseData = { alerts: allAlerts }; } else { const page = this.getNodeParameter('page', i, 0); const max = this.getNodeParameter('max', i, 100); qs.page = page; qs.max = max; responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'GET', `/api/v2/site/${siteUid}/alerts/open`, {}, qs); } } break; case 'getResolvedAlerts': { const siteUid = this.getNodeParameter('siteUid', i); const retrieveAll = this.getNodeParameter('retrieveAll', i, true); const muted = this.getNodeParameter('muted', i, false); const qs = { muted }; if (retrieveAll) { const allAlerts = await api_helper_1.dattoRmmApiRequestAllItems.call(this, 'GET', `/api/v2/site/${siteUid}/alerts/resolved`, {}, qs); responseData = { alerts: allAlerts }; } else { const page = this.getNodeParameter('page', i, 0); const max = this.getNodeParameter('max', i, 100); qs.page = page; qs.max = max; responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'GET', `/api/v2/site/${siteUid}/alerts/resolved`, {}, qs); } } break; case 'getVariables': { const siteUid = this.getNodeParameter('siteUid', i); const retrieveAll = this.getNodeParameter('retrieveAll', i, true); if (retrieveAll) { const allVariables = await api_helper_1.dattoRmmApiRequestAllItems.call(this, 'GET', `/api/v2/site/${siteUid}/variables`, {}, {}); responseData = { variables: allVariables }; } else { const page = this.getNodeParameter('page', i, 0); const max = this.getNodeParameter('max', i, 100); const qs = { page, max }; responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'GET', `/api/v2/site/${siteUid}/variables`, {}, qs); } } break; case 'getSettings': { const siteUid = this.getNodeParameter('siteUid', i); responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'GET', `/api/v2/site/${siteUid}/settings`); } break; case 'getFilters': { const siteUid = this.getNodeParameter('siteUid', i); responseData = await api_helper_1.dattoRmmApiRequest.call(this, 'GET', `/api/v2/site/${siteUid}/filters`); } break; default: throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation "${operation}" is not supported for site resource`, { description: `Available operations: get, getMany, create, update, getDevices, getOpenAlerts, getResolvedAlerts, getVariables, getSettings, getFilters`, }); } returnData.push({ json: responseData, pairedItem: { item: i, }, }); } catch (error) { if (this.continueOnFail()) { returnData.push({ json: { error: error.message || 'Unknown error occurred', itemIndex: i, operation: operation, resource: 'site', }, pairedItem: { item: i, }, }); continue; } throw error; } } return [returnData]; }); } //# sourceMappingURL=execute.js.map