UNPKG

@contiva/sap-integration-suite-client

Version:
67 lines (66 loc) 2.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ResponseNormalizer = void 0; class ResponseNormalizer { /** * Hilfsmethode zur Normalisierung von Array-Antworten von der API * * @param {any} data Die API-Antwortdaten * @param {string} methodName Name der aufrufenden Methode für Logging * @param {string} [specificProperty] Optionale spezifische Property für bestimmte API-Formate * @returns {any[]} Normalisiertes Array * @private */ normalizeArrayResponse(data, methodName, specificProperty) { var _a; // 1. OData v2 format (d.results) if (((_a = data === null || data === void 0 ? void 0 : data.d) === null || _a === void 0 ? void 0 : _a.results) && Array.isArray(data.d.results)) { return data.d.results; } // 2. OData v4 format (value array) if ((data === null || data === void 0 ? void 0 : data.value) && Array.isArray(data.value)) { return data.value; } // 3. Direkt ein Array (bereits normalisiert) if (Array.isArray(data)) { return data; } // 4. Spezifisches Format für bestimmte Endpunkte if (specificProperty && (data === null || data === void 0 ? void 0 : data[specificProperty]) && Array.isArray(data[specificProperty])) { return data[specificProperty]; } // Fallback - leeres Array zurückgeben, wenn keine Daten gefunden wurden console.warn(`Unbekanntes Antwortformat bei ${methodName}:`, typeof data === 'object' ? `Objekt mit Keys: [${Object.keys(data || {}).join(', ')}]` : typeof data); return []; } /** * Hilfsmethode zur Normalisierung von Entitäts-Antworten von der API * * @param {any} data Die API-Antwortdaten * @param {string} methodName Name der aufrufenden Methode für Logging * @returns {any | undefined} Normalisierte Entität oder undefined * @private */ normalizeEntityResponse(data, methodName) { // 1. OData Format mit d-Property if (data === null || data === void 0 ? void 0 : data.d) { return data.d; } // 2. OData v4 Format mit value-Array und nur einem Element if ((data === null || data === void 0 ? void 0 : data.value) && Array.isArray(data.value) && data.value.length > 0) { return data.value[0]; } // 3. Direkt ein Objekt (bereits normalisiert) if (data && typeof data === 'object' && !Array.isArray(data)) { return data; } // Fallback - undefined zurückgeben, wenn keine Daten gefunden wurden console.warn(`Unbekanntes Antwortformat bei ${methodName}:`, typeof data === 'object' ? `Objekt mit Keys: [${Object.keys(data || {}).join(', ')}]` : typeof data); return undefined; } } exports.ResponseNormalizer = ResponseNormalizer;