📚 Improved documentation and logs structure for better maintainability and troubleshooting. 🖥️🔍

This commit is contained in:
2025-06-01 04:46:49 +02:00
parent f0fe4c29d5
commit 3501bbfddf
30 changed files with 721 additions and 167 deletions

View File

@ -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;