Refactor: Einführung einer handleEvent-Methode zur zentralen Verarbeitung von Socket.io-Events in mehreren Views

Änderung:
- In den Views StatusBar, BankView, BranchView, DirectorView, FamilyView, HealthView, HouseView und NobilityView wurde eine neue Methode `handleEvent` hinzugefügt, um die Verarbeitung von empfangenen Socket.io-Events zu zentralisieren.
- Die spezifischen Event-Handler wurden aktualisiert, um die `handleEvent`-Methode aufzurufen, was die Lesbarkeit und Wartbarkeit des Codes verbessert.

Diese Anpassung sorgt für eine konsistentere Handhabung von Socket.io-Events und erleichtert zukünftige Erweiterungen und Anpassungen der Event-Logik.
This commit is contained in:
Torsten Schulz (local)
2025-09-08 13:28:48 +02:00
parent fbe41e627b
commit aea624ae26
9 changed files with 100 additions and 17 deletions

View File

@@ -134,7 +134,7 @@ export default {
if (this.socket) {
this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 BankView: falukantUpdateStatus empfangen:', data);
this.loadBankOverview();
this.handleEvent({ event: 'falukantUpdateStatus', ...data });
});
console.log('✅ BankView: Socket.io Events registriert');
} else {
@@ -142,6 +142,16 @@ export default {
setTimeout(() => this.setupSocketEvents(), 1000);
}
},
handleEvent(eventData) {
console.log('🔄 BankView: handleEvent aufgerufen mit:', eventData);
switch (eventData.event) {
case 'falukantUpdateStatus':
this.loadBankOverview();
break;
default:
console.log('⚠️ BankView: Unbekanntes Event:', eventData.event);
}
},
async loadBankOverview() {
try {
const { data } = await apiClient.get('/api/falukant/bank/overview');

View File

@@ -112,13 +112,11 @@ export default {
if (this.socket) {
this.socket.on('falukantBranchUpdate', (data) => {
console.log('📨 BranchView: falukantBranchUpdate empfangen:', data);
this.loadBranches();
this.loadProducts();
this.handleEvent({ event: 'falukantBranchUpdate', ...data });
});
this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 BranchView: falukantUpdateStatus empfangen:', data);
this.loadBranches();
this.loadProducts();
this.handleEvent({ event: 'falukantUpdateStatus', ...data });
});
console.log('✅ BranchView: Socket.io Events registriert');
} else {

View File

@@ -108,7 +108,7 @@ export default {
if (this.socket) {
this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 DirectorView: falukantUpdateStatus empfangen:', data);
this.loadDirectors();
this.handleEvent({ event: 'falukantUpdateStatus', ...data });
});
console.log('✅ DirectorView: Socket.io Events registriert');
} else {
@@ -116,6 +116,16 @@ export default {
setTimeout(() => this.setupSocketEvents(), 1000);
}
},
handleEvent(eventData) {
console.log('🔄 DirectorView: handleEvent aufgerufen mit:', eventData);
switch (eventData.event) {
case 'falukantUpdateStatus':
this.loadDirectors();
break;
default:
console.log('⚠️ DirectorView: Unbekanntes Event:', eventData.event);
}
},
async loadDirectors() {
try {
const { data } = await apiClient.get('/api/falukant/directors');

View File

@@ -208,11 +208,11 @@ export default {
if (this.socket) {
this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 FamilyView: falukantUpdateStatus empfangen:', data);
this.loadFamilyData();
this.handleEvent({ event: 'falukantUpdateStatus', ...data });
});
this.socket.on('familychanged', (data) => {
console.log('📨 FamilyView: familychanged empfangen:', data);
this.loadFamilyData();
this.handleEvent({ event: 'familychanged', ...data });
});
console.log('✅ FamilyView: Socket.io Events registriert');
} else {
@@ -220,6 +220,17 @@ export default {
setTimeout(() => this.setupSocketEvents(), 1000);
}
},
handleEvent(eventData) {
console.log('🔄 FamilyView: handleEvent aufgerufen mit:', eventData);
switch (eventData.event) {
case 'falukantUpdateStatus':
case 'familychanged':
this.loadFamilyData();
break;
default:
console.log('⚠️ FamilyView: Unbekanntes Event:', eventData.event);
}
},
async loadFamilyData() {
try {
const response = await apiClient.get('/api/falukant/family');

View File

@@ -99,7 +99,7 @@ export default {
if (this.socket) {
this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 HealthView: falukantUpdateStatus empfangen:', data);
this.loadHealthData();
this.handleEvent({ event: 'falukantUpdateStatus', ...data });
});
console.log('✅ HealthView: Socket.io Events registriert');
} else {
@@ -107,6 +107,16 @@ export default {
setTimeout(() => this.setupSocketEvents(), 1000);
}
},
handleEvent(eventData) {
console.log('🔄 HealthView: handleEvent aufgerufen mit:', eventData);
switch (eventData.event) {
case 'falukantUpdateStatus':
this.loadHealthData();
break;
default:
console.log('⚠️ HealthView: Unbekanntes Event:', eventData.event);
}
},
async loadHealthData() {
try {
const { data } = await apiClient.get('/api/falukant/health');

View File

@@ -203,17 +203,28 @@ export default {
if (this.socket) {
this.socket.on('falukantHouseUpdate', (data) => {
console.log('📨 HouseView: falukantHouseUpdate empfangen:', data);
this.loadData();
this.handleEvent({ event: 'falukantHouseUpdate', ...data });
});
this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 HouseView: falukantUpdateStatus empfangen:', data);
this.loadData();
this.handleEvent({ event: 'falukantUpdateStatus', ...data });
});
console.log('✅ HouseView: Socket.io Events registriert');
} else {
console.log('⚠️ HouseView: Socket.io noch nicht verfügbar');
setTimeout(() => this.setupSocketEvents(), 1000);
}
},
handleEvent(eventData) {
console.log('🔄 HouseView: handleEvent aufgerufen mit:', eventData);
switch (eventData.event) {
case 'falukantUpdateStatus':
case 'falukantHouseUpdate':
this.loadData();
break;
default:
console.log('⚠️ HouseView: Unbekanntes Event:', eventData.event);
}
}
}
};

View File

@@ -84,7 +84,7 @@
if (this.socket) {
this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 NobilityView: falukantUpdateStatus empfangen:', data);
this.loadNobility();
this.handleEvent({ event: 'falukantUpdateStatus', ...data });
});
console.log('✅ NobilityView: Socket.io Events registriert');
} else {
@@ -92,6 +92,16 @@
setTimeout(() => this.setupSocketEvents(), 1000);
}
},
handleEvent(eventData) {
console.log('🔄 NobilityView: handleEvent aufgerufen mit:', eventData);
switch (eventData.event) {
case 'falukantUpdateStatus':
this.loadNobility();
break;
default:
console.log('⚠️ NobilityView: Unbekanntes Event:', eventData.event);
}
},
async loadNobility() {
try {
const { data } = await apiClient.get('/api/falukant/nobility');

View File

@@ -232,11 +232,11 @@ export default {
this.socket.on("production_ready", this.handleProductionReadyEvent);
this.socket.on("falukantUpdateStatus", (data) => {
console.log('📨 FalukantOverviewView: falukantUpdateStatus empfangen:', data);
this.fetchFalukantUser();
this.handleEvent({ event: 'falukantUpdateStatus', ...data });
});
this.socket.on("falukantBranchUpdate", (data) => {
console.log('📨 FalukantOverviewView: falukantBranchUpdate empfangen:', data);
this.fetchFalukantUser();
this.handleEvent({ event: 'falukantBranchUpdate', ...data });
});
console.log('✅ FalukantOverviewView: Socket.io Events registriert');
} else {
@@ -247,6 +247,17 @@ export default {
}, 1000);
}
},
handleEvent(eventData) {
console.log('🔄 FalukantOverviewView: handleEvent aufgerufen mit:', eventData);
switch (eventData.event) {
case 'falukantUpdateStatus':
case 'falukantBranchUpdate':
this.fetchFalukantUser();
break;
default:
console.log('⚠️ FalukantOverviewView: Unbekanntes Event:', eventData.event);
}
},
getAgeGroup(age) {
if (age <= 1) return "0-1";
if (age <= 3) return "2-3";