n8n-nodes-inflow-crm
Version:
Official Inflow CRM integration for n8n. Create, update, search records and handle webhooks with dynamic field support.
40 lines (39 loc) • 1.68 kB
JavaScript
;
// TypeScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.executeDeleteAction = void 0;
const api_1 = require("../../lib/api");
const endpoints_1 = require("../../lib/endpoints");
const logger_1 = require("../../lib/logger");
async function executeDeleteAction(itemIndex, moduleName, id) {
// Context and parameter validation
if (!this || typeof this.getNodeParameter !== 'function') {
throw new Error('Context error: IExecuteFunctions context is required');
}
if (!moduleName || typeof moduleName !== 'string') {
throw new Error('module name is required');
}
if (!id || typeof id !== 'string' || !id.trim()) {
throw new Error('id is required');
}
if (!/^[a-zA-Z0-9\-_]+$/.test(id)) {
throw new Error('id format is invalid');
}
logger_1.actionsLogger.info(`Deleting record ${id} in module: ${moduleName}`);
try {
await (0, api_1.inflowApiRequest)(this, 'DELETE', endpoints_1.Endpoints.DELETE_RECORD(moduleName, id));
logger_1.actionsLogger.info(`Successfully deleted record ${id}`);
return {
json: { success: true, operation: 'delete', id, module: moduleName },
pairedItem: { item: itemIndex },
};
}
catch (error) {
logger_1.actionsLogger.error(`Error deleting record ${id}:`, error);
if (error?.error && error.error.code) {
throw new Error(`[${error.error.code}] ${error.error.message}`);
}
throw new Error(`Failed to delete record in "${moduleName}": ${error.message || 'unknown error'}`);
}
}
exports.executeDeleteAction = executeDeleteAction;