From 32f06d73998eeffb37222172c58b0c0b80c3ac8b Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Tue, 14 Oct 2025 23:31:12 +0200 Subject: [PATCH] Refactor MyTischtennis URL controller to streamline match results and league table fetching. Remove redundant logging and execution time tracking for match results, while ensuring successful fetch counts are accurately reported in the response. Simplify error handling for league table updates without failing the entire request. --- .../controllers/myTischtennisUrlController.js | 96 +++---------------- backend/services/memberService.js | 29 ------ 2 files changed, 13 insertions(+), 112 deletions(-) diff --git a/backend/controllers/myTischtennisUrlController.js b/backend/controllers/myTischtennisUrlController.js index 5453d86..a38bd92 100644 --- a/backend/controllers/myTischtennisUrlController.js +++ b/backend/controllers/myTischtennisUrlController.js @@ -314,105 +314,35 @@ class MyTischtennisUrlController { } // Fetch data for this specific team - const startTime = Date.now(); - let matchResultsSuccess = false; - let tableUpdateSuccess = false; - let matchResultsCount = 0; - let tableUpdateCount = 0; - - try { - const result = await autoFetchMatchResultsService.fetchTeamResults( - { - userId: account.userId, - email: account.email, - cookie: session.cookie, - accessToken: session.accessToken, - expiresAt: session.expiresAt, - getPassword: () => null // Not needed for manual fetch - }, - team - ); - - matchResultsSuccess = true; - matchResultsCount = result.fetchedCount || 0; - - // Log match results fetch - const fetchLogService = (await import('../services/myTischtennisFetchLogService.js')).default; - await fetchLogService.logFetch( - account.userId, - 'match_results', - true, - `${matchResultsCount} Spielergebnisse erfolgreich abgerufen`, - { - recordsProcessed: matchResultsCount, - executionTime: Date.now() - startTime, - isAutomatic: false - } - ); - } catch (error) { - console.error('Error fetching match results:', error); - const fetchLogService = (await import('../services/myTischtennisFetchLogService.js')).default; - await fetchLogService.logFetch( - account.userId, - 'match_results', - false, - 'Fehler beim Abrufen der Spielergebnisse', - { - errorDetails: error.message, - executionTime: Date.now() - startTime, - isAutomatic: false - } - ); - } + const result = await autoFetchMatchResultsService.fetchTeamResults( + { + userId: account.userId, + email: account.email, + cookie: session.cookie, + accessToken: session.accessToken, + expiresAt: session.expiresAt, + getPassword: () => null // Not needed for manual fetch + }, + team + ); // Also fetch and update league table data let tableUpdateResult = null; - const tableStartTime = Date.now(); try { await autoFetchMatchResultsService.fetchAndUpdateLeagueTable(account.userId, team.league.id); tableUpdateResult = 'League table updated successfully'; - tableUpdateSuccess = true; - tableUpdateCount = 1; // One table updated console.log('✓ League table updated for league:', team.league.id); - - // Log league table fetch - const fetchLogService = (await import('../services/myTischtennisFetchLogService.js')).default; - await fetchLogService.logFetch( - account.userId, - 'league_table', - true, - 'Ligatabelle erfolgreich aktualisiert', - { - recordsProcessed: tableUpdateCount, - executionTime: Date.now() - tableStartTime, - isAutomatic: false - } - ); } catch (error) { console.error('Error fetching league table data:', error); tableUpdateResult = 'League table update failed: ' + error.message; - - // Log league table fetch failure - const fetchLogService = (await import('../services/myTischtennisFetchLogService.js')).default; - await fetchLogService.logFetch( - account.userId, - 'league_table', - false, - 'Fehler beim Aktualisieren der Ligatabelle', - { - errorDetails: error.message, - executionTime: Date.now() - tableStartTime, - isAutomatic: false - } - ); // Don't fail the entire request if table update fails } res.json({ success: true, - message: `${matchResultsCount} Datensätze abgerufen und verarbeitet`, + message: `${result.fetchedCount} Datensätze abgerufen und verarbeitet`, data: { - fetchedCount: matchResultsCount, + fetchedCount: result.fetchedCount, teamName: team.name, tableUpdate: tableUpdateResult } diff --git a/backend/services/memberService.js b/backend/services/memberService.js index 712b35a..10dab03 100644 --- a/backend/services/memberService.js +++ b/backend/services/memberService.js @@ -145,11 +145,9 @@ class MemberService { await checkAccess(userToken, clubId); const user = await getUserByToken(userToken); - const startTime = Date.now(); const myTischtennisService = (await import('./myTischtennisService.js')).default; const myTischtennisClient = (await import('../clients/myTischtennisClient.js')).default; - const fetchLogService = (await import('./myTischtennisFetchLogService.js')).default; try { // 1. myTischtennis-Session abrufen oder Login durchführen @@ -298,19 +296,6 @@ class MemberService { message += ` ${errors.length} Fehler beim Speichern.`; } - // Log successful ratings fetch - await fetchLogService.logFetch( - user.id, - 'ratings', - true, - message, - { - recordsProcessed: updated, - executionTime: Date.now() - startTime, - isAutomatic: false - } - ); - return { status: 200, response: { @@ -325,20 +310,6 @@ class MemberService { }; } catch (error) { console.error('[updateRatingsFromMyTischtennis] - Error:', error); - - // Log failed ratings fetch - await fetchLogService.logFetch( - user.id, - 'ratings', - false, - 'Fehler beim Aktualisieren der Wertungen', - { - errorDetails: error.message, - executionTime: Date.now() - startTime, - isAutomatic: false - } - ); - return { status: 500, response: {