From 6b55db404306a7f2c12795d713a512df505577be Mon Sep 17 00:00:00 2001
From: mh378 <mh378@hdm-stuttgart.de>
Date: Wed, 27 Dec 2023 14:34:07 +0100
Subject: [PATCH] 27.12.2023 - added logging in service methods, new comments
 for discussions, brainstrom for new methods #24

---
 .../sthbackend/service/TournamentService.java | 38 ++++++++++++++++++-
 1 file changed, 37 insertions(+), 1 deletion(-)

diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/service/TournamentService.java b/sth-backend/src/main/java/hdm/mi/sthbackend/service/TournamentService.java
index 5cec195..0482189 100644
--- a/sth-backend/src/main/java/hdm/mi/sthbackend/service/TournamentService.java
+++ b/sth-backend/src/main/java/hdm/mi/sthbackend/service/TournamentService.java
@@ -10,6 +10,8 @@ import hdm.mi.sthbackend.model.Tournament;
 import hdm.mi.sthbackend.repository.ITournamentRepository;
 import hdm.mi.sthbackend.repository.MongoManager;
 import lombok.AllArgsConstructor;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -19,7 +21,9 @@ import java.util.UUID;
 
 @Service
 @AllArgsConstructor
-public class TournamentService {  // test
+public class TournamentService {
+
+    private final static Logger log = LogManager.getLogger(TournamentService.class);
 
     ITournamentRepository tournamentRepository;
 
@@ -35,9 +39,21 @@ public class TournamentService {  // test
                 .getTeamMembers()
                 .put(newPlayer.getPlayerId(), newPlayer);
         tournamentRepository.save(tournament);
+        log.debug("Player " + newPlayer.getPlayerId() + " added to Team " + teamId + " in Tournament " + tournamentId);
         return newPlayer;
     }
 
+
+
+    /*
+    Wie gehen wir damit um, wenn zwei Player denselben Namen haben? Also: Stefan vs Stefan = Stefan gewinnt
+    Sollte man hier in den Methoden das ausschließen und dann geben die Spieler ihren ersten Buchstaben vom Nachnamen an? z.B. Stefan S. vs Stefan w.
+    oder geben wir die UUID auch mit an zum PlayerName
+     */
+
+
+
+
     public Player removePlayerFromTeam(UUID tournamentId,
                                        UUID teamId,
                                        UUID playerId) throws TournamentIdNotFoundException {
@@ -50,9 +66,16 @@ public class TournamentService {  // test
                 .remove(playerId);
 
         tournamentRepository.save(tournament);
+        log.debug("Player " + playerId + " removed from Team " + teamId + " in Tournament " + tournamentId);
         return removedPlayer;
     }
 
+
+    /*
+    Kann es passieren, dass hier bei der Methode removePlayerFromTeam() es den Player gar nicht gibt?
+    und dann eine PlayerIdNotFoundException geworfen werden muss? oder ist durch die Ãœbergabe von UUID playerId schon safe die playerId vorhanden
+     */
+
     public UUID updatePlayerName(UUID tournamentId,
                                  UUID teamId,
                                  UUID playerId,
@@ -67,6 +90,7 @@ public class TournamentService {  // test
                 .setName(newPlayerName);
 
         tournamentRepository.save(tournament);
+        log.debug("Player " + playerId + " changed Name to " + newPlayerName + " in " +  teamId + " in Tournament " + tournamentId);
         return playerId;
     }
 
@@ -81,6 +105,7 @@ public class TournamentService {  // test
                 .put(team.getId(), team);
 
         tournamentRepository.save(tournament);
+        log.debug("Team " +  team.getId() + " added to Tournament " + tournamentId);
         return team;
     }
 
@@ -93,6 +118,7 @@ public class TournamentService {  // test
                         .remove(teamId))
                 .orElseThrow(() -> new TeamIdNotFoundException(tournamentId));
         tournamentRepository.save(tournament);
+        log.debug("Team " + teamId + " added to Tournament " + tournamentId);
         return teamId;
     }
 
@@ -103,8 +129,18 @@ public class TournamentService {  // test
 
         Tournament tournament = new Tournament(UUID.randomUUID(), tournamentName, new ArrayList<>(), new HashMap<>());
         tournamentRepository.insert(tournament);
+        tournamentRepository.save(tournament);// Muss es hier nochmal gespeichert werden?
+        log.debug("created Tournament " + tournament.getTournamentId());
         return tournament;
     }
 
 
+    /*
+    Weitere Methoden:
+    Gewinner bestimmen, defineWinner()
+    Teams Matches zuordnen,
+
+     */
+
+
 }
-- 
GitLab