UNPKG

n8n-nodes-awx

Version:

n8n node to interact with Ansible AWX/Tower with improved type safety

67 lines 2.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveResourceParameters = resolveResourceParameters; exports.throwParameterResolutionError = throwParameterResolutionError; exports.formatResourceResponse = formatResourceResponse; const n8n_workflow_1 = require("n8n-workflow"); function resolveResourceParameters(idKeys, nameKeys, resourceType, itemIndex = 0) { let id; let name; for (const key of idKeys) { const val = this.getNodeParameter(key, itemIndex); if (val !== undefined && val !== '') { id = val; break; } } if (!id) { for (const key of nameKeys) { const val = this.getNodeParameter(key, itemIndex); if (val !== undefined && val !== '') { name = val; break; } } } if (!id && !name) { throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Either ID or Name must be provided for ${resourceType}`); } return { id, name }; } function throwParameterResolutionError(resourceType, idKeys, nameKeys, itemIndex = 0) { const idKeysList = idKeys.map(key => `'${key}'`).join(', '); const nameKeysList = nameKeys.map(key => `'${key}'`).join(', '); throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to resolve parameters for ${resourceType}. Provide one of: ${idKeysList} for ID or ${nameKeysList} for name.`, { itemIndex }); } function formatResourceResponse(resource, format, resourceType) { if (format === 'minimal') { return { id: resource.id, name: resource.name, }; } if (format === 'friendly') { const friendlyData = { id: resource.id, name: resource.name, description: resource.description || '', created: resource.created, modified: resource.modified, }; if (resourceType === 'inventory') { friendlyData.host_count = resource.total_hosts; friendlyData.organization = resource.organization; } else if (resourceType === 'job') { friendlyData.status = resource.status; friendlyData.started = resource.started; friendlyData.finished = resource.finished; if (resource.job_output !== undefined) { friendlyData.job_output = resource.job_output; } } return friendlyData; } return resource; } //# sourceMappingURL=resourceHelpers.js.map