n8n-nodes-arubaclearpass
Version:
n8n community node for Aruba ClearPass API integration with comprehensive identity, policy, and enforcement profile management
396 lines (395 loc) • 15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.listEnforcementProfiles = listEnforcementProfiles;
exports.createEnforcementProfile = createEnforcementProfile;
exports.getEnforcementProfile = getEnforcementProfile;
exports.getEnforcementProfileByName = getEnforcementProfileByName;
exports.updateEnforcementProfile = updateEnforcementProfile;
exports.updateEnforcementProfileByName = updateEnforcementProfileByName;
exports.replaceEnforcementProfile = replaceEnforcementProfile;
exports.replaceEnforcementProfileByName = replaceEnforcementProfileByName;
exports.deleteEnforcementProfile = deleteEnforcementProfile;
exports.deleteEnforcementProfileByName = deleteEnforcementProfileByName;
// methods/EnforcementProfile/EnforcementProfile.methods.ts
const n8n_workflow_1 = require("n8n-workflow");
const apiRequest_1 = require("../../helpers/apiRequest");
const responseFormatter_1 = require("../../helpers/responseFormatter");
/**
* List all enforcement profiles
*/
async function listEnforcementProfiles() {
try {
const returnAll = this.getNodeParameter('returnAll', 0);
const filters = this.getNodeParameter('filters', 0, {});
const endpoint = '/enforcement-profile';
let responseData;
if (returnAll) {
responseData = await apiRequest_1.apiRequestAllItems.call(this, 'GET', endpoint, {}, filters);
}
else {
const limit = this.getNodeParameter('limit', 0);
if (!filters.limit) {
filters.limit = limit;
}
responseData = await apiRequest_1.apiRequest.call(this, 'GET', endpoint, {}, filters);
}
return responseFormatter_1.formatResponse.call(this, responseData);
}
catch (error) {
const errorObject = {};
if (error instanceof Error) {
errorObject.message = error.message;
if (error.stack) {
errorObject.stackTrace = error.stack;
}
}
else {
errorObject.message = 'Unknown error in listEnforcementProfiles';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Create a new enforcement profile
*/
async function createEnforcementProfile() {
try {
const body = {};
// Add required fields
body.name = this.getNodeParameter('name', 0);
body.type = this.getNodeParameter('type', 0);
// Add optional fields
const description = this.getNodeParameter('description', 0, '');
if (description) {
body.description = description;
}
const action = this.getNodeParameter('action', 0, '');
if (action) {
body.action = action;
}
// Add complex configuration
const profileConfigJson = this.getNodeParameter('profileConfig', 0, '{}');
try {
const profileConfig = JSON.parse(profileConfigJson);
// Merge the profile config with the body
Object.entries(profileConfig).forEach(([key, value]) => {
body[key] = value;
});
}
catch (parseError) {
throw new Error(`Invalid JSON in profile configuration: ${parseError.message}`);
}
const endpoint = '/enforcement-profile';
const responseData = await apiRequest_1.apiRequest.call(this, 'POST', endpoint, body);
return responseFormatter_1.formatResponse.call(this, responseData);
}
catch (error) {
const errorObject = {};
if (error instanceof Error) {
errorObject.message = error.message;
if (error.stack) {
errorObject.stackTrace = error.stack;
}
}
else {
errorObject.message = 'Unknown error in createEnforcementProfile';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Get an enforcement profile by ID
*/
async function getEnforcementProfile() {
try {
const enforcementProfileId = this.getNodeParameter('enforcementProfileId', 0);
const endpoint = `/enforcement-profile/${enforcementProfileId}`;
const responseData = await apiRequest_1.apiRequest.call(this, 'GET', endpoint);
return responseFormatter_1.formatResponse.call(this, responseData);
}
catch (error) {
const errorObject = {};
if (error instanceof Error) {
errorObject.message = error.message;
if (error.stack) {
errorObject.stackTrace = error.stack;
}
}
else {
errorObject.message = 'Unknown error in getEnforcementProfile';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Get an enforcement profile by name
*/
async function getEnforcementProfileByName() {
try {
const name = this.getNodeParameter('name', 0);
const endpoint = `/enforcement-profile/name/${name}`;
const responseData = await apiRequest_1.apiRequest.call(this, 'GET', endpoint);
return responseFormatter_1.formatResponse.call(this, responseData);
}
catch (error) {
const errorObject = {};
if (error instanceof Error) {
errorObject.message = error.message;
if (error.stack) {
errorObject.stackTrace = error.stack;
}
}
else {
errorObject.message = 'Unknown error in getEnforcementProfileByName';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Update an enforcement profile by ID
*/
async function updateEnforcementProfile() {
try {
const enforcementProfileId = this.getNodeParameter('enforcementProfileId', 0);
const updateFields = this.getNodeParameter('updateFields', 0, {});
if (!Object.keys(updateFields).length) {
throw new Error('Please specify at least one field to update');
}
const body = {};
// Handle regular fields
if (updateFields.name)
body.name = updateFields.name;
if (updateFields.description)
body.description = updateFields.description;
if (updateFields.type)
body.type = updateFields.type;
if (updateFields.action)
body.action = updateFields.action;
// Handle complex profile configuration if provided
if (updateFields.profileConfig) {
try {
const profileConfig = JSON.parse(updateFields.profileConfig);
// Merge the profile config with the body
Object.entries(profileConfig).forEach(([key, value]) => {
body[key] = value;
});
}
catch (parseError) {
throw new Error(`Invalid JSON in profile configuration: ${parseError.message}`);
}
}
const endpoint = `/enforcement-profile/${enforcementProfileId}`;
const responseData = await apiRequest_1.apiRequest.call(this, 'PATCH', endpoint, body);
return responseFormatter_1.formatResponse.call(this, responseData);
}
catch (error) {
const errorObject = {};
if (error instanceof Error) {
errorObject.message = error.message;
if (error.stack) {
errorObject.stackTrace = error.stack;
}
}
else {
errorObject.message = 'Unknown error in updateEnforcementProfile';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Update an enforcement profile by name
*/
async function updateEnforcementProfileByName() {
try {
const name = this.getNodeParameter('name', 0);
const updateFields = this.getNodeParameter('updateFields', 0, {});
if (!Object.keys(updateFields).length) {
throw new Error('Please specify at least one field to update');
}
const body = {};
// Handle regular fields
if (updateFields.name)
body.name = updateFields.name;
if (updateFields.description)
body.description = updateFields.description;
if (updateFields.type)
body.type = updateFields.type;
if (updateFields.action)
body.action = updateFields.action;
// Handle complex profile configuration if provided
if (updateFields.profileConfig) {
try {
const profileConfig = JSON.parse(updateFields.profileConfig);
// Merge the profile config with the body
Object.entries(profileConfig).forEach(([key, value]) => {
body[key] = value;
});
}
catch (parseError) {
throw new Error(`Invalid JSON in profile configuration: ${parseError.message}`);
}
}
const endpoint = `/enforcement-profile/name/${name}`;
const responseData = await apiRequest_1.apiRequest.call(this, 'PATCH', endpoint, body);
return responseFormatter_1.formatResponse.call(this, responseData);
}
catch (error) {
const errorObject = {};
if (error instanceof Error) {
errorObject.message = error.message;
if (error.stack) {
errorObject.stackTrace = error.stack;
}
}
else {
errorObject.message = 'Unknown error in updateEnforcementProfileByName';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Replace an enforcement profile by ID
*/
async function replaceEnforcementProfile() {
try {
const enforcementProfileId = this.getNodeParameter('enforcementProfileId', 0);
const body = {};
// Add required fields
body.name = this.getNodeParameter('name', 0);
body.type = this.getNodeParameter('type', 0);
// Add optional fields
const description = this.getNodeParameter('description', 0, '');
if (description) {
body.description = description;
}
const action = this.getNodeParameter('action', 0, '');
if (action) {
body.action = action;
}
// Add complex configuration
const profileConfigJson = this.getNodeParameter('profileConfig', 0, '{}');
try {
const profileConfig = JSON.parse(profileConfigJson);
// Merge the profile config with the body
Object.entries(profileConfig).forEach(([key, value]) => {
body[key] = value;
});
}
catch (parseError) {
throw new Error(`Invalid JSON in profile configuration: ${parseError.message}`);
}
const endpoint = `/enforcement-profile/${enforcementProfileId}`;
const responseData = await apiRequest_1.apiRequest.call(this, 'PUT', endpoint, body);
return responseFormatter_1.formatResponse.call(this, responseData);
}
catch (error) {
const errorObject = {};
if (error instanceof Error) {
errorObject.message = error.message;
if (error.stack) {
errorObject.stackTrace = error.stack;
}
}
else {
errorObject.message = 'Unknown error in replaceEnforcementProfile';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Replace an enforcement profile by name
*/
async function replaceEnforcementProfileByName() {
try {
const name = this.getNodeParameter('name', 0);
const body = {};
// Add required fields
body.name = this.getNodeParameter('name', 0);
body.type = this.getNodeParameter('type', 0);
// Add optional fields
const description = this.getNodeParameter('description', 0, '');
if (description) {
body.description = description;
}
const action = this.getNodeParameter('action', 0, '');
if (action) {
body.action = action;
}
// Add complex configuration
const profileConfigJson = this.getNodeParameter('profileConfig', 0, '{}');
try {
const profileConfig = JSON.parse(profileConfigJson);
// Merge the profile config with the body
Object.entries(profileConfig).forEach(([key, value]) => {
body[key] = value;
});
}
catch (parseError) {
throw new Error(`Invalid JSON in profile configuration: ${parseError.message}`);
}
const endpoint = `/enforcement-profile/name/${name}`;
const responseData = await apiRequest_1.apiRequest.call(this, 'PUT', endpoint, body);
return responseFormatter_1.formatResponse.call(this, responseData);
}
catch (error) {
const errorObject = {};
if (error instanceof Error) {
errorObject.message = error.message;
if (error.stack) {
errorObject.stackTrace = error.stack;
}
}
else {
errorObject.message = 'Unknown error in replaceEnforcementProfileByName';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Delete an enforcement profile by ID
*/
async function deleteEnforcementProfile() {
try {
const enforcementProfileId = this.getNodeParameter('enforcementProfileId', 0);
const endpoint = `/enforcement-profile/${enforcementProfileId}`;
await apiRequest_1.apiRequest.call(this, 'DELETE', endpoint);
return [{ json: { success: true } }];
}
catch (error) {
const errorObject = {};
if (error instanceof Error) {
errorObject.message = error.message;
if (error.stack) {
errorObject.stackTrace = error.stack;
}
}
else {
errorObject.message = 'Unknown error in deleteEnforcementProfile';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Delete an enforcement profile by name
*/
async function deleteEnforcementProfileByName() {
try {
const name = this.getNodeParameter('name', 0);
const endpoint = `/enforcement-profile/name/${name}`;
await apiRequest_1.apiRequest.call(this, 'DELETE', endpoint);
return [{ json: { success: true } }];
}
catch (error) {
const errorObject = {};
if (error instanceof Error) {
errorObject.message = error.message;
if (error.stack) {
errorObject.stackTrace = error.stack;
}
}
else {
errorObject.message = 'Unknown error in deleteEnforcementProfileByName';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}