UNPKG

@socradar/n8n-nodes-socradar

Version:

Production-ready n8n integration for SOCRadar Extended Threat Intelligence platform

158 lines 5.64 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleIncidentOperations = handleIncidentOperations; const n8n_workflow_1 = require("n8n-workflow"); const axios_1 = __importDefault(require("axios")); async function handleIncidentOperations(baseUrl, headers, i) { const operation = this.getNodeParameter('operation', i); const companyId = this.getNodeParameter('companyId', i); if (operation === 'getAll') { return await handleGetAllIncidents.call(this, baseUrl, headers, companyId, i); } else if (operation === 'get') { return await handleGetIncident.call(this, baseUrl, headers, companyId, i); } else if (operation === 'addComment') { return await handleAddComment.call(this, baseUrl, headers, companyId, i); } else if (operation === 'addTag') { return await handleAddTag.call(this, baseUrl, headers, companyId, i); } else if (operation === 'removeTag') { return await handleRemoveTag.call(this, baseUrl, headers, companyId, i); } throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation "${operation}" is not supported for resource "incident"!`); } async function handleGetAllIncidents(baseUrl, headers, companyId, i) { const additionalFields = this.getNodeParameter('additionalFields', i, {}); const endpoint = `${baseUrl}/company/${companyId}/incidents/v4`; const queryParams = {}; if (additionalFields.page) { queryParams.page = additionalFields.page; } if (additionalFields.limit) { queryParams.limit = additionalFields.limit; } if (additionalFields.status) { queryParams.status = additionalFields.status; } if (additionalFields.severity && additionalFields.severity.length > 0) { queryParams.severity = additionalFields.severity; } if (additionalFields.is_resolved !== undefined) { queryParams.is_resolved = additionalFields.is_resolved; } if (additionalFields.is_false_positive !== undefined) { queryParams.is_false_positive = additionalFields.is_false_positive; } if (additionalFields.start_date) { queryParams.start_date = additionalFields.start_date.split('T')[0]; } if (additionalFields.end_date) { queryParams.end_date = additionalFields.end_date.split('T')[0]; } if (additionalFields.incident_types && additionalFields.incident_types.length > 0) { queryParams.incident_types = additionalFields.incident_types; } if (additionalFields.tags && additionalFields.tags.length > 0) { queryParams.tags = additionalFields.tags; } if (additionalFields.sort_by) { queryParams.sort_by = additionalFields.sort_by; } if (additionalFields.sort_order) { queryParams.sort_order = additionalFields.sort_order; } const options = { method: 'GET', url: endpoint, headers, params: queryParams, }; const response = await (0, axios_1.default)(options); return { json: response.data, pairedItem: { item: i }, }; } async function handleGetIncident(baseUrl, headers, companyId, i) { const incidentId = this.getNodeParameter('incidentId', i); const endpoint = `${baseUrl}/company/${companyId}/incidents/v4`; const queryParams = { notification_ids: [incidentId], }; const options = { method: 'GET', url: endpoint, headers, params: queryParams, }; const response = await (0, axios_1.default)(options); return { json: response.data, pairedItem: { item: i }, }; } async function handleAddComment(baseUrl, headers, companyId, i) { const incidentId = this.getNodeParameter('incidentId', i); const comment = this.getNodeParameter('comment', i); const userEmail = this.getNodeParameter('userEmail', i); const endpoint = `${baseUrl}/company/${companyId}/alarm/add/comment/v2`; const options = { method: 'POST', url: endpoint, headers, data: { alarm_id: incidentId, comment: comment, user_email: userEmail, }, }; const response = await (0, axios_1.default)(options); return { json: response.data, pairedItem: { item: i }, }; } async function handleAddTag(baseUrl, headers, companyId, i) { const incidentId = this.getNodeParameter('incidentId', i); const tag = this.getNodeParameter('tag', i); const endpoint = `${baseUrl}/company/${companyId}/alarm/tag`; const options = { method: 'POST', url: endpoint, headers, data: { alarm_id: incidentId, tag: tag, }, }; const response = await (0, axios_1.default)(options); return { json: response.data, pairedItem: { item: i }, }; } async function handleRemoveTag(baseUrl, headers, companyId, i) { const incidentId = this.getNodeParameter('incidentId', i); const tag = this.getNodeParameter('tag', i); const endpoint = `${baseUrl}/company/${companyId}/alarm/tag`; const options = { method: 'DELETE', url: endpoint, headers, data: { alarm_id: incidentId, tag: tag, }, }; const response = await (0, axios_1.default)(options); return { json: response.data, pairedItem: { item: i }, }; } //# sourceMappingURL=incident.js.map