UNPKG

@socradar/n8n-nodes-socradar

Version:

Production-ready n8n integration for SOCRadar Extended Threat Intelligence platform

144 lines 5.22 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleTakedownOperations = handleTakedownOperations; const n8n_workflow_1 = require("n8n-workflow"); const axios_1 = __importDefault(require("axios")); async function handleTakedownOperations(baseUrl, headers, i) { var _a; const operation = this.getNodeParameter('operation', i); const companyId = this.getNodeParameter('companyId', i); try { if (operation === 'createDomain') { return await handleCreateDomainTakedown.call(this, baseUrl, headers, companyId, i); } else if (operation === 'createSocialMedia') { return await handleCreateSocialMediaTakedown.call(this, baseUrl, headers, companyId, i); } else if (operation === 'createSourceCode') { return await handleCreateSourceCodeTakedown.call(this, baseUrl, headers, companyId, i); } else if (operation === 'getProgress') { return await handleGetTakedownProgress.call(this, baseUrl, headers, companyId, i); } throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation "${operation}" is not supported for resource "takedown"!`); } catch (error) { if (this.continueOnFail()) { return { json: { error: error.message, details: ((_a = error.response) === null || _a === void 0 ? void 0 : _a.data) || 'No additional error details', }, pairedItem: { item: i }, }; } throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Takedown Error: ${error.message}`, { itemIndex: i }); } } async function handleCreateDomainTakedown(baseUrl, headers, companyId, i) { const entity = this.getNodeParameter('entity', i); const abuseType = this.getNodeParameter('abuse_type', i); const type = this.getNodeParameter('type', i); const additionalFields = this.getNodeParameter('additionalFields', i, {}); const endpoint = `${baseUrl}/add/company/${companyId}/takedown/request`; const body = { entity, abuse_type: abuseType, type }; if (additionalFields.notes) { body.notes = additionalFields.notes; } if (additionalFields.send_alarm !== undefined) { body.send_alarm = additionalFields.send_alarm; } if (additionalFields.email) { body.email = additionalFields.email; } const options = { method: 'POST', url: endpoint, headers, data: body, }; const response = await (0, axios_1.default)(options); return { json: response.data, pairedItem: { item: i }, }; } async function handleCreateSocialMediaTakedown(baseUrl, headers, companyId, i) { const impersonatingAccount = this.getNodeParameter('impersonating_account', i); const additionalFields = this.getNodeParameter('additionalFields', i, {}); const endpoint = `${baseUrl}/add/company/${companyId}/takedown/request/social_media_risks`; const body = { impersonating_account: impersonatingAccount }; if (additionalFields.notes) { body.notes = additionalFields.notes; } if (additionalFields.send_alarm !== undefined) { body.send_alarm = additionalFields.send_alarm; } if (additionalFields.email) { body.email = additionalFields.email; } const options = { method: 'POST', url: endpoint, headers, data: body, }; const response = await (0, axios_1.default)(options); return { json: response.data, pairedItem: { item: i }, }; } async function handleCreateSourceCodeTakedown(baseUrl, headers, companyId, i) { const id = this.getNodeParameter('id', i); const additionalFields = this.getNodeParameter('additionalFields', i, {}); const endpoint = `${baseUrl}/add/company/${companyId}/takedown/request/source_code_leaks`; const body = { id }; if (additionalFields.notes) { body.notes = additionalFields.notes; } if (additionalFields.email) { body.email = additionalFields.email; } const options = { method: 'POST', url: endpoint, headers, data: body, }; const response = await (0, axios_1.default)(options); return { json: response.data, pairedItem: { item: i }, }; } async function handleGetTakedownProgress(baseUrl, headers, companyId, i) { const assetId = this.getNodeParameter('asset_id', i); const type = this.getNodeParameter('type', i); const endpoint = `${baseUrl}/get/company/${companyId}/takedown/progress`; const queryParams = { asset_id: assetId, type, }; const options = { method: 'GET', url: endpoint, headers, params: queryParams, }; const response = await (0, axios_1.default)(options); return { json: response.data, pairedItem: { item: i }, }; } //# sourceMappingURL=takedown.js.map