UNPKG

n8n-nodes-arubacentral

Version:

n8n community node for Aruba Central API integration with comprehensive monitoring, configuration, and management capabilities

55 lines (44 loc) 1.48 kB
// helpers/formatter.ts import { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow'; /** * Formats the API response into n8n node items */ export function formatResponse(this: IExecuteFunctions, response: any): INodeExecutionData[] { console.log('Formatting response'); // If there's no response, return empty array if (!response) { return [{ json: { success: false, message: 'No data returned' } }]; } // If result is an array with a known structure (paginated results) if (response && typeof response === 'object' && !Array.isArray(response)) { // For paginated responses with count property if (response.count !== undefined) { let items: INodeExecutionData[] = []; // Check various possible array locations const possibleArrayProps = ['aps', 'clients', 'bssids', 'samples', 'trails']; for (const prop of possibleArrayProps) { if (Array.isArray(response[prop])) { items = response[prop].map((item: any) => ({ json: item })); break; } } // If we found items through known properties if (items.length > 0) { return items; } } // For single entity responses if (response.ap) { return [{ json: response.ap }]; } if (response.client) { return [{ json: response.client }]; } } // If the response is already an array if (Array.isArray(response)) { return response.map((item) => ({ json: item })); } // Default fallback - return the entire response return [{ json: response }]; }