n8n-nodes-awx
Version:
n8n node to interact with Ansible AWX/Tower with improved type safety
67 lines • 2.56 kB
JavaScript
;
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