Enhance MemberTransferService and MemberTransferDialog with detailed debug logging

Added extensive debug logging to the MemberTransferService to track member transfer details, including logging the first few members and bulk data structure. Updated the MemberTransferDialog to clear login credentials upon loading and closing, improving user experience and ensuring a clean state for configuration loading. These enhancements aim to facilitate troubleshooting and provide better visibility into the member transfer process.
This commit is contained in:
Torsten Schulz (local)
2025-11-06 08:13:43 +01:00
parent d0a8ef5ff2
commit cad76edaad
2 changed files with 80 additions and 0 deletions

View File

@@ -251,6 +251,12 @@ class MemberTransferService {
config.transferTemplate,
member
);
// Debug-Logging: Erste 3 Mitglieder vollständig loggen
if (membersArray.length < 3) {
devLog(`[transferMembers] Mitglied ${membersArray.length + 1} (${member.firstName} ${member.lastName}):`, JSON.stringify(memberData, null, 2));
}
membersArray.push(memberData);
} catch (error) {
devLog(`[transferMembers] Error processing ${member.firstName} ${member.lastName}:`, error);
@@ -261,6 +267,8 @@ class MemberTransferService {
}
}
devLog(`[transferMembers] Anzahl zu übertragender Mitglieder: ${membersArray.length}`);
// Bulk-Objekt erstellen
let bulkData;
@@ -305,6 +313,30 @@ class MemberTransferService {
};
}
// Debug-Logging: Was wird übertragen?
devLog('[transferMembers] Bulk-Daten werden übertragen:');
devLog('[transferMembers] Endpoint:', transferEndpointUrl);
devLog('[transferMembers] Methode:', config.transferMethod || 'POST');
devLog('[transferMembers] Format:', config.transferFormat || 'json');
devLog('[transferMembers] Anzahl Mitglieder im Bulk:', membersArray.length);
// Logge die ersten 2 Mitglieder vollständig für Debugging
if (membersArray.length > 0) {
devLog('[transferMembers] Erstes Mitglied (Beispiel):', JSON.stringify(membersArray[0], null, 2));
if (membersArray.length > 1) {
devLog('[transferMembers] Zweites Mitglied (Beispiel):', JSON.stringify(membersArray[1], null, 2));
}
}
// Logge die vollständige Bulk-Struktur (begrenzt auf erste 1000 Zeichen)
const bulkDataString = JSON.stringify(bulkData, null, 2);
if (bulkDataString.length > 1000) {
devLog('[transferMembers] Bulk-Daten (erste 1000 Zeichen):', bulkDataString.substring(0, 1000) + '...');
devLog('[transferMembers] Bulk-Daten Gesamtlänge:', bulkDataString.length, 'Zeichen');
} else {
devLog('[transferMembers] Vollständige Bulk-Daten:', bulkDataString);
}
const transferResult = await this.transferMember(
transferEndpointUrl,
config.transferMethod || 'POST',
@@ -551,6 +583,44 @@ class MemberTransferService {
*/
async transferMember(endpoint, method, format, data, authToken, sessionCookie) {
try {
// Debug-Logging
devLog('[transferMember] Starte Übertragung:');
devLog('[transferMember] Endpoint:', endpoint);
devLog('[transferMember] Method:', method);
devLog('[transferMember] Format:', format);
devLog('[transferMember] AuthToken vorhanden:', !!authToken);
devLog('[transferMember] SessionCookie vorhanden:', !!sessionCookie);
// Logge Daten-Struktur (ohne vollständige Daten bei großen Objekten)
if (typeof data === 'object' && data !== null) {
if (Array.isArray(data)) {
devLog('[transferMember] Daten ist Array mit', data.length, 'Elementen');
if (data.length > 0) {
devLog('[transferMember] Erstes Array-Element:', JSON.stringify(data[0], null, 2));
}
} else if (data.members && Array.isArray(data.members)) {
devLog('[transferMember] Daten enthält members-Array mit', data.members.length, 'Elementen');
if (data.members.length > 0) {
devLog('[transferMember] Erstes Mitglied im members-Array:', JSON.stringify(data.members[0], null, 2));
if (data.members.length > 1) {
devLog('[transferMember] Zweites Mitglied im members-Array:', JSON.stringify(data.members[1], null, 2));
}
}
} else {
const dataString = JSON.stringify(data, null, 2);
if (dataString.length > 500) {
devLog('[transferMember] Daten (erste 500 Zeichen):', dataString.substring(0, 500) + '...');
} else {
devLog('[transferMember] Vollständige Daten:', dataString);
}
}
} else {
devLog('[transferMember] Daten-Typ:', typeof data);
if (typeof data === 'string') {
devLog('[transferMember] Daten-String (erste 500 Zeichen):', data.substring(0, 500));
}
}
let requestConfig = {
url: endpoint,
method: method.toUpperCase(),

View File

@@ -172,7 +172,17 @@ export default {
watch: {
modelValue(newVal) {
if (newVal) {
// WICHTIG: Felder sofort leeren, bevor Konfiguration geladen wird
this.loginCredentials = {
username: '',
password: '',
additionalField1: '',
additionalField2: ''
};
this.loadSavedConfig();
} else {
// Beim Schließen auch leeren
this.resetForm();
}
}
},