n8n-nodes-arubaclearpass
Version:
n8n community node for Aruba ClearPass API integration with comprehensive identity, policy, and enforcement profile management
359 lines (358 loc) • 12.8 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.listRoleMappings = listRoleMappings;
exports.getRoleMapping = getRoleMapping;
exports.getRoleMappingByName = getRoleMappingByName;
exports.createRoleMapping = createRoleMapping;
exports.updateRoleMapping = updateRoleMapping;
exports.updateRoleMappingByName = updateRoleMappingByName;
exports.replaceRoleMapping = replaceRoleMapping;
exports.replaceRoleMappingByName = replaceRoleMappingByName;
exports.deleteRoleMapping = deleteRoleMapping;
exports.deleteRoleMappingByName = deleteRoleMappingByName;
// methods/PolicyElements/RoleMapping.methods.ts
const n8n_workflow_1 = require("n8n-workflow");
const apiRequest_1 = require("../../helpers/apiRequest");
const responseFormatter_1 = require("../../helpers/responseFormatter");
/**
* List all role mappings
*/
async function listRoleMappings() {
try {
const returnAll = this.getNodeParameter('returnAll', 0);
const filters = this.getNodeParameter('filters', 0, {});
const endpoint = '/role-mapping';
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 listRoleMappings';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Get a role mapping by ID
*/
async function getRoleMapping() {
try {
const roleMappingId = this.getNodeParameter('roleMappingId', 0);
const endpoint = `/role-mapping/${roleMappingId}`;
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 getRoleMapping';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Get a role mapping by name
*/
async function getRoleMappingByName() {
try {
const name = this.getNodeParameter('name', 0);
const endpoint = `/role-mapping/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 getRoleMappingByName';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Create a new role mapping
*/
async function createRoleMapping() {
try {
const body = {};
// Add required fields
body.name = this.getNodeParameter('name', 0);
body.default_role_name = this.getNodeParameter('default_role_name', 0);
body.rule_combine_algo = this.getNodeParameter('rule_combine_algo', 0);
// Add optional fields
const description = this.getNodeParameter('description', 0, '');
if (description) {
body.description = description;
}
// Add rules (required)
const rulesJson = this.getNodeParameter('rules', 0);
try {
body.rules = JSON.parse(rulesJson);
}
catch (parseError) {
throw new Error(`Invalid JSON in rules: ${parseError.message}`);
}
const endpoint = '/role-mapping';
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 createRoleMapping';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Update a role mapping by ID
*/
async function updateRoleMapping() {
try {
const roleMappingId = this.getNodeParameter('roleMappingId', 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 fields
Object.entries(updateFields).forEach(([key, value]) => {
if (key === 'rules' && typeof value === 'string') {
try {
body[key] = JSON.parse(value);
}
catch (parseError) {
throw new Error(`Invalid JSON in rules: ${parseError.message}`);
}
}
else {
body[key] = value;
}
});
const endpoint = `/role-mapping/${roleMappingId}`;
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 updateRoleMapping';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Update a role mapping by name
*/
async function updateRoleMappingByName() {
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 fields
Object.entries(updateFields).forEach(([key, value]) => {
if (key === 'rules' && typeof value === 'string') {
try {
body[key] = JSON.parse(value);
}
catch (parseError) {
throw new Error(`Invalid JSON in rules: ${parseError.message}`);
}
}
else {
body[key] = value;
}
});
const endpoint = `/role-mapping/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 updateRoleMappingByName';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Replace a role mapping by ID
*/
async function replaceRoleMapping() {
try {
const roleMappingId = this.getNodeParameter('roleMappingId', 0);
const body = {};
// Add required fields
body.name = this.getNodeParameter('name', 0);
body.default_role_name = this.getNodeParameter('default_role_name', 0);
body.rule_combine_algo = this.getNodeParameter('rule_combine_algo', 0);
// Add optional fields
const description = this.getNodeParameter('description', 0, '');
if (description) {
body.description = description;
}
// Add rules (required)
const rulesJson = this.getNodeParameter('rules', 0);
try {
body.rules = JSON.parse(rulesJson);
}
catch (parseError) {
throw new Error(`Invalid JSON in rules: ${parseError.message}`);
}
const endpoint = `/role-mapping/${roleMappingId}`;
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 replaceRoleMapping';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Replace a role mapping by name
*/
async function replaceRoleMappingByName() {
try {
const name = this.getNodeParameter('name', 0);
const body = {};
// Add required fields
body.name = this.getNodeParameter('name', 0);
body.default_role_name = this.getNodeParameter('default_role_name', 0);
body.rule_combine_algo = this.getNodeParameter('rule_combine_algo', 0);
// Add optional fields
const description = this.getNodeParameter('description', 0, '');
if (description) {
body.description = description;
}
// Add rules (required)
const rulesJson = this.getNodeParameter('rules', 0);
try {
body.rules = JSON.parse(rulesJson);
}
catch (parseError) {
throw new Error(`Invalid JSON in rules: ${parseError.message}`);
}
const endpoint = `/role-mapping/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 replaceRoleMappingByName';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Delete a role mapping by ID
*/
async function deleteRoleMapping() {
try {
const roleMappingId = this.getNodeParameter('roleMappingId', 0);
const endpoint = `/role-mapping/${roleMappingId}`;
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 deleteRoleMapping';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}
/**
* Delete a role mapping by name
*/
async function deleteRoleMappingByName() {
try {
const name = this.getNodeParameter('name', 0);
const endpoint = `/role-mapping/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 deleteRoleMappingByName';
}
throw new n8n_workflow_1.NodeApiError(this.getNode(), errorObject);
}
}