n8n-nodes-arubacentral
Version:
n8n community node for Aruba Central API integration with comprehensive monitoring, configuration, and management capabilities
67 lines (57 loc) • 1.81 kB
text/typescript
// getClientRoamHistory.methods.ts
import { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
import { IClientRoamHistory } from '../keymanagement.types';
import {
KEYMANAGEMENT_BASE_PATH,
KEYMANAGEMENT_ENDPOINTS,
validateClientMac,
} from '../keymanagement.common';
import { apiRequest } from '../../../helpers/apiRequest';
import { logger } from '../../../helpers/logger';
export async function getClientRoamHistory(this: IExecuteFunctions): Promise<INodeExecutionData[]> {
const clientMac = this.getNodeParameter('client_mac', 0) as string;
logger.info(
'keymanagement:getClientRoamHistory',
`Retrieving roam history for client: ${clientMac}`,
);
validateClientMac(clientMac);
const endpoint = `${KEYMANAGEMENT_BASE_PATH}${KEYMANAGEMENT_ENDPOINTS.CLIENT_ROAM_HISTORY}/${clientMac}`;
try {
const response = await apiRequest.call(this, 'GET', endpoint, {}, {});
logger.debug(
'keymanagement:getClientRoamHistory',
`Retrieved roam history for ${clientMac} - event count: ${response.roam_events?.length || 0}`,
);
return [
{
json: {
client_mac: clientMac,
roam_events: response.roam_events || [],
...response,
},
},
];
} catch (error) {
logger.error(
'keymanagement:getClientRoamHistory:error',
`Failed to retrieve roam history for ${clientMac}: ${error.message}`,
);
// Note: API exists but implementation may be incomplete
if (error.message.includes('not implemented') || error.message.includes('incomplete')) {
logger.warn(
'keymanagement:getClientRoamHistory',
'API implementation is incomplete, returning empty history',
);
return [
{
json: {
client_mac: clientMac,
roam_events: [],
status: 'incomplete_implementation',
},
},
];
}
throw error;
}
}