Refactor error handling in MyTischtennisUrlController and improve memberService indexing
Refactored error handling in MyTischtennisUrlController to standardize error messages and ensure consistent status codes. Enhanced memberService by implementing a more efficient indexing system for member data retrieval, improving performance and accuracy in TTR and QTTR updates. Updated TeamManagementView to handle timeout errors and provide detailed user feedback, enhancing overall user experience.
This commit is contained in:
@@ -1060,9 +1060,9 @@ export default {
|
||||
try {
|
||||
const response = await apiClient.post('/mytischtennis/fetch-team-data', {
|
||||
clubTeamId: teamToEdit.value.id
|
||||
});
|
||||
}, { timeout: 30000 });
|
||||
|
||||
if (response.data.success) {
|
||||
if (response.data && response.data.success) {
|
||||
myTischtennisSuccess.value = response.data.message;
|
||||
|
||||
// Erstelle detaillierte Erfolgsmeldung mit Tabelleninfo
|
||||
@@ -1078,22 +1078,32 @@ export default {
|
||||
detailsMessage,
|
||||
'success'
|
||||
);
|
||||
} else if (response.data && response.data.success === false) {
|
||||
const details = response.data.debug ? JSON.stringify(response.data.debug, null, 2) : '';
|
||||
await showInfo(
|
||||
response.data.needsMyTischtennisReauth ? 'Login bei myTischtennis erforderlich' : 'Fehler',
|
||||
response.data.error || 'Daten konnten nicht abgerufen werden.',
|
||||
details,
|
||||
response.data.needsMyTischtennisReauth ? 'warning' : 'error'
|
||||
);
|
||||
myTischtennisError.value = response.data.error || '';
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Abrufen der Team-Daten:', error);
|
||||
const isTimeout = error?.code === 'ECONNABORTED';
|
||||
const errData = error?.response?.data || {};
|
||||
const errorMsg = errData.message || errData.error || error.message || 'Daten konnten nicht abgerufen werden.';
|
||||
const errorMsg = isTimeout ? 'Zeitüberschreitung beim Abruf (Timeout).' : (errData.message || errData.error || error.message || 'Daten konnten nicht abgerufen werden.');
|
||||
myTischtennisError.value = errorMsg;
|
||||
|
||||
// Spezielle Behandlung für Account-nicht-verknüpft Fehler
|
||||
if (error.response?.status === 404) {
|
||||
if (!isTimeout && error.response?.status === 404) {
|
||||
await showInfo(
|
||||
'MyTischtennis-Account nicht verknüpft',
|
||||
errorMsg,
|
||||
'Gehen Sie zu den MyTischtennis-Einstellungen, um Ihren Account zu verknüpfen.',
|
||||
'warning'
|
||||
);
|
||||
} else if (error.response?.status === 401) {
|
||||
} else if (!isTimeout && error.response?.status === 401) {
|
||||
await showInfo(
|
||||
'Login erforderlich',
|
||||
errorMsg,
|
||||
@@ -1101,7 +1111,7 @@ export default {
|
||||
'warning'
|
||||
);
|
||||
} else {
|
||||
const debugText = errData.debug ? JSON.stringify(errData.debug, null, 2) : '';
|
||||
const debugText = isTimeout ? 'Der Server hat nicht rechtzeitig geantwortet.' : (errData.debug ? JSON.stringify(errData.debug, null, 2) : '');
|
||||
await showInfo('Fehler', errorMsg, debugText, 'error');
|
||||
}
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user