@socradar/n8n-nodes-socradar
Version:
Production-ready n8n integration for SOCRadar Extended Threat Intelligence platform
101 lines • 3.97 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.handleBrandProtectionOperations = handleBrandProtectionOperations;
const n8n_workflow_1 = require("n8n-workflow");
const axios_1 = __importDefault(require("axios"));
async function handleBrandProtectionOperations(baseUrl, headers, i) {
var _a;
const operation = this.getNodeParameter('operation', i);
const companyId = this.getNodeParameter('companyId', i);
try {
if (operation === 'getBrandProtection') {
return await handleGetBrandProtection.call(this, baseUrl, headers, companyId, i);
}
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation "${operation}" is not supported for resource "brandProtection"!`);
}
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(), `Brand Protection Error: ${error.message}`, { itemIndex: i });
}
}
async function handleGetBrandProtection(baseUrl, headers, companyId, i) {
const operationType = this.getNodeParameter('operationType', i);
const additionalFields = this.getNodeParameter('additionalFields', i, {});
let endpoint = `${baseUrl}/company/${companyId}/brand-protection`;
switch (operationType) {
case 'impersonatingAccounts':
endpoint += '/impersonating-accounts/v2';
break;
case 'impersonatingDomains':
endpoint += '/impersonating-domains/v2';
break;
case 'rogueMobileApplications':
endpoint += '/rogue-mobile-applications/v2';
break;
case 'badReputation':
endpoint += '/bad-reputation/v2';
break;
case 'socialMediaFindings':
endpoint += '/social-media-findings/v2';
break;
default:
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation type "${operationType}" is not supported!`);
}
const queryParams = {};
if (additionalFields.searchString) {
queryParams.searchString = additionalFields.searchString;
}
if (additionalFields.recordStatus) {
queryParams.recordStatus = additionalFields.recordStatus;
}
if (additionalFields.recordStatusReason) {
queryParams.recordStatusReason = additionalFields.recordStatusReason;
}
if (additionalFields.alarmStatus) {
queryParams.alarmStatus = additionalFields.alarmStatus;
}
if (additionalFields.countryCode) {
queryParams.countryCode = additionalFields.countryCode;
}
if (additionalFields.page) {
queryParams.page = additionalFields.page;
}
if (additionalFields.limit) {
queryParams.limit = additionalFields.limit;
}
if (additionalFields.includeHistorical !== undefined) {
queryParams.includeHistorical = additionalFields.includeHistorical;
}
if (additionalFields.startDate) {
queryParams.startDate = additionalFields.startDate;
}
if (additionalFields.endDate) {
queryParams.endDate = additionalFields.endDate;
}
if (additionalFields.orderDir) {
queryParams.orderDir = additionalFields.orderDir;
}
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=brandProtection.js.map