📚 Improved documentation and logs structure for better maintainability and troubleshooting. 🖥️🔍
This commit is contained in:
@ -161,20 +161,43 @@ class PrinterMonitor {
|
||||
// Drucker-Daten aktualisieren
|
||||
this.printers.clear();
|
||||
|
||||
// Null-Check für data.printers hinzufügen
|
||||
// Flexible Datenextraktion für verschiedene API-Response-Strukturen
|
||||
let printersData = null;
|
||||
|
||||
if (data && data.printers && typeof data.printers === 'object') {
|
||||
Object.values(data.printers).forEach(printer => {
|
||||
this.printers.set(printer.id, {
|
||||
...printer,
|
||||
statusInfo: this.statusCategories[printer.status] || this.statusCategories['offline']
|
||||
});
|
||||
// Alte Struktur: data.printers
|
||||
printersData = data.printers;
|
||||
} else if (data && data.status && typeof data.status === 'object') {
|
||||
// Neue Struktur: data.status
|
||||
printersData = data.status;
|
||||
} else if (data && typeof data === 'object' && !data.success && !data.error) {
|
||||
// Direkte Drucker-Daten ohne Wrapper
|
||||
printersData = data;
|
||||
}
|
||||
|
||||
if (printersData && typeof printersData === 'object') {
|
||||
// Drucker-Daten verarbeiten
|
||||
Object.values(printersData).forEach(printer => {
|
||||
// Sichere Validierung der Drucker-Objekte
|
||||
if (printer && typeof printer === 'object' && printer.id) {
|
||||
this.printers.set(printer.id, {
|
||||
...printer,
|
||||
statusInfo: this.statusCategories[printer.status] || this.statusCategories['offline']
|
||||
});
|
||||
} else {
|
||||
console.warn('⚠️ Ungültiges Drucker-Objekt übersprungen:', printer);
|
||||
}
|
||||
});
|
||||
|
||||
console.log(`✅ ${this.printers.size} Drucker erfolgreich verarbeitet`);
|
||||
} else {
|
||||
console.warn('⚠️ Keine gültigen Drucker-Daten erhalten:', data);
|
||||
// Benachrichtige Callbacks über Fehler
|
||||
console.warn('⚠️ Keine gültigen Drucker-Daten in Response-Struktur gefunden');
|
||||
console.debug('Response-Struktur:', data);
|
||||
|
||||
// Benachrichtige Callbacks über fehlende Daten (aber nicht als Fehler)
|
||||
this.notifyCallbacks({
|
||||
type: 'error',
|
||||
message: 'Ungültige Drucker-Daten erhalten',
|
||||
type: 'warning',
|
||||
message: 'Keine Drucker-Daten verfügbar',
|
||||
data: data
|
||||
});
|
||||
return;
|
||||
|
Reference in New Issue
Block a user