@socradar/n8n-nodes-socradar
Version:
Production-ready n8n integration for SOCRadar Extended Threat Intelligence platform
202 lines • 7.41 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.handleDarkWebMonitoringOperations = handleDarkWebMonitoringOperations;
const n8n_workflow_1 = require("n8n-workflow");
const axios_1 = __importDefault(require("axios"));
async function handleDarkWebMonitoringOperations(baseUrl, headers, i) {
var _a;
const operation = this.getNodeParameter('operation', i);
const companyId = this.getNodeParameter('companyId', i);
try {
if (operation === 'getBotnetData') {
return await handleGetBotnetData.call(this, baseUrl, headers, companyId, i);
}
else if (operation === 'getBlackmarket') {
return await handleGetBlackmarket.call(this, baseUrl, headers, companyId, i);
}
else if (operation === 'getSuspiciousContent') {
return await handleGetSuspiciousContent.call(this, baseUrl, headers, companyId, i);
}
else if (operation === 'getPiiExposure') {
return await handleGetPiiExposure.call(this, baseUrl, headers, companyId, i);
}
else if (operation === 'getImContent') {
return await handleGetImContent.call(this, baseUrl, headers, companyId, i);
}
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation "${operation}" is not supported for resource "darkWebMonitoring"!`);
}
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(), `Dark Web Monitoring Error: ${error.message}`, { itemIndex: i });
}
}
async function handleGetBotnetData(baseUrl, headers, companyId, i) {
const additionalFields = this.getNodeParameter('additionalFields', i, {});
const endpoint = `${baseUrl}/company/${companyId}/dark-web-monitoring/botnet-data/v2`;
const queryParams = {};
if (additionalFields.searchString) {
queryParams.searchString = additionalFields.searchString;
}
if (additionalFields.recordStatus) {
queryParams.recordStatus = additionalFields.recordStatus;
}
if (additionalFields.page) {
queryParams.page = additionalFields.page;
}
if (additionalFields.alarmid) {
queryParams.alarmid = additionalFields.alarmid;
}
if (additionalFields.notificationid) {
queryParams.notificationid = additionalFields.notificationid;
}
if (additionalFields.limit) {
queryParams.limit = additionalFields.limit;
}
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 handleGetBlackmarket(baseUrl, headers, companyId, i) {
const additionalFields = this.getNodeParameter('additionalFields', i, {});
const endpoint = `${baseUrl}/company/${companyId}/dark-web-monitoring/blackmarket/v2`;
const queryParams = {};
if (additionalFields.startDate) {
queryParams.startDate = additionalFields.startDate.split('T')[0];
}
if (additionalFields.endDate) {
queryParams.endDate = additionalFields.endDate.split('T')[0];
}
if (additionalFields.page) {
queryParams.page = additionalFields.page;
}
if (additionalFields.limit) {
queryParams.limit = additionalFields.limit;
}
if (additionalFields.alarmId) {
queryParams.alarmId = additionalFields.alarmId;
}
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 handleGetSuspiciousContent(baseUrl, headers, companyId, i) {
const additionalFields = this.getNodeParameter('additionalFields', i, {});
const endpoint = `${baseUrl}/company/${companyId}/dark-web-monitoring/suspicious-content/v2`;
const queryParams = {};
if (additionalFields.startDate) {
queryParams.startDate = additionalFields.startDate.split('T')[0];
}
if (additionalFields.endDate) {
queryParams.endDate = additionalFields.endDate.split('T')[0];
}
if (additionalFields.page) {
queryParams.page = additionalFields.page;
}
if (additionalFields.limit) {
queryParams.limit = additionalFields.limit;
}
if (additionalFields.alarmId) {
queryParams.alarmId = additionalFields.alarmId;
}
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 handleGetPiiExposure(baseUrl, headers, companyId, i) {
const additionalFields = this.getNodeParameter('additionalFields', i, {});
const endpoint = `${baseUrl}/company/${companyId}/dark-web-monitoring/pii-exposure/v2`;
const queryParams = {};
if (additionalFields.startDate) {
queryParams.startDate = additionalFields.startDate.split('T')[0];
}
if (additionalFields.endDate) {
queryParams.endDate = additionalFields.endDate.split('T')[0];
}
if (additionalFields.page) {
queryParams.page = additionalFields.page;
}
if (additionalFields.limit) {
queryParams.limit = additionalFields.limit;
}
if (additionalFields.alarmId) {
queryParams.alarmId = additionalFields.alarmId;
}
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 handleGetImContent(baseUrl, headers, companyId, i) {
const additionalFields = this.getNodeParameter('additionalFields', i, {});
const endpoint = `${baseUrl}/company/${companyId}/dark-web-monitoring/im-content/v2`;
const queryParams = {};
if (additionalFields.startDate) {
queryParams.startDate = additionalFields.startDate.split('T')[0];
}
if (additionalFields.endDate) {
queryParams.endDate = additionalFields.endDate.split('T')[0];
}
if (additionalFields.page) {
queryParams.page = additionalFields.page;
}
if (additionalFields.limit) {
queryParams.limit = additionalFields.limit;
}
if (additionalFields.searchString) {
queryParams.searchString = additionalFields.searchString;
}
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=darkWebMonitoring.js.map