UNPKG

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
"use strict"; 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); } }