Erweitert die Funktionalität von updateRatingsFromMyTischtennis, um eine automatische Anmeldung bei abgelaufener Session zu ermöglichen. Fügt Fehlerbehandlung für den Login-Prozess hinzu und entfernt die Bestätigungsabfrage vor der Aktualisierung der TTR/QTTR-Werte, um den Benutzerfluss zu verbessern.
This commit is contained in:
@@ -150,8 +150,38 @@ class MemberService {
|
||||
const myTischtennisClient = (await import('../clients/myTischtennisClient.js')).default;
|
||||
|
||||
try {
|
||||
// 1. myTischtennis-Session abrufen
|
||||
const session = await myTischtennisService.getSession(user.id);
|
||||
// 1. myTischtennis-Session abrufen oder Login durchführen
|
||||
let session;
|
||||
try {
|
||||
session = await myTischtennisService.getSession(user.id);
|
||||
} catch (sessionError) {
|
||||
console.log('[updateRatingsFromMyTischtennis] - Session invalid, attempting login...', sessionError.message);
|
||||
|
||||
// Versuche automatischen Login mit gespeicherten Credentials
|
||||
try {
|
||||
const loginResult = await myTischtennisService.verifyLogin(user.id);
|
||||
const freshSession = await myTischtennisService.getSession(user.id);
|
||||
session = {
|
||||
cookie: freshSession.cookie,
|
||||
accessToken: freshSession.accessToken,
|
||||
refreshToken: freshSession.refreshToken,
|
||||
expiresAt: freshSession.expiresAt,
|
||||
userData: freshSession.userData
|
||||
};
|
||||
console.log('[updateRatingsFromMyTischtennis] - Automatic login successful');
|
||||
} catch (loginError) {
|
||||
console.error('[updateRatingsFromMyTischtennis] - Automatic login failed:', loginError.message);
|
||||
return {
|
||||
status: 401,
|
||||
response: {
|
||||
message: 'Session abgelaufen und automatischer Login fehlgeschlagen. Bitte einmal in myTischtennis einloggen.',
|
||||
updated: 0,
|
||||
errors: [loginError.message],
|
||||
needsReauth: true
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
const account = await myTischtennisService.getAccount(user.id);
|
||||
|
||||
|
||||
@@ -387,10 +387,6 @@ export default {
|
||||
return '';
|
||||
},
|
||||
async updateRatingsFromMyTischtennis() {
|
||||
if (!confirm('TTR/QTTR-Werte von myTischtennis aktualisieren?')) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.isUpdatingRatings = true;
|
||||
try {
|
||||
const response = await apiClient.post(`/clubmembers/update-ratings/${this.currentClub}`);
|
||||
|
||||
Reference in New Issue
Block a user