From 9c98104ef4369b53064de12f272d88a2db3bcca5 Mon Sep 17 00:00:00 2001
From: Jonas <jonas.fischer14@gmx.de>
Date: Tue, 26 Dec 2023 20:21:32 +0100
Subject: [PATCH] 26.12.2023 - refactored service methods

---
 .../sthbackend/service/TournamentService.java | 46 +++++++++----------
 1 file changed, 21 insertions(+), 25 deletions(-)

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 bd33d49..a7d3810 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
@@ -12,7 +12,10 @@ import hdm.mi.sthbackend.repository.MongoManager;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Optional;
+import java.util.UUID;
 
 @Service
 @AllArgsConstructor
@@ -20,7 +23,9 @@ public class TournamentService {
 
     ITournamentRepository tournamentRepository;
 
-    public Player addPlayerToTeam(UUID tournamentId, UUID teamId, String playerName) throws TournamentIdNotFoundException {
+    public Player addPlayerToTeam(UUID tournamentId,
+                                  UUID teamId,
+                                  String playerName) throws TournamentIdNotFoundException {
         Tournament tournament = tournamentRepository.findById(tournamentId)
                 .orElseThrow(() -> new TournamentIdNotFoundException(tournamentId));
         Player newPlayer = new Player(UUID.randomUUID(), playerName);
@@ -28,33 +33,24 @@ public class TournamentService {
                 .getTeams()
                 .get(teamId)
                 .getTeamMembers()
-                .add(newPlayer);
+                .put(newPlayer.getPlayerId(), newPlayer);
         tournamentRepository.save(tournament);
         return newPlayer;
     }
 
     public Player removePlayerFromTeam(UUID tournamentId,
                                        UUID teamId,
-                                       UUID playerId) throws TournamentIdNotFoundException, PlayerIdNotFoundException {
+                                       UUID playerId) throws TournamentIdNotFoundException {
         Tournament tournament = tournamentRepository.findById(tournamentId)
                 .orElseThrow(() -> new TournamentIdNotFoundException(tournamentId));
 
-        List<Player> teamMembers = tournament.getTeams()
-                .get(teamId)
-                .getTeamMembers();
-
-        Player playerToRemove = teamMembers.stream()
-                .filter(player -> player.getPlayerId()
-                        .equals(playerId))
-                .findFirst()
-                .orElseThrow(() -> new PlayerIdNotFoundException(playerId));
-
-        tournament.getTeams()
+        Player removedPlayer = tournament.getTeams()
                 .get(teamId)
                 .getTeamMembers()
-                .remove(playerToRemove);
+                .remove(playerId);
+
         tournamentRepository.save(tournament);
-        return playerToRemove;
+        return removedPlayer;
     }
 
     public UUID updatePlayerName(UUID tournamentId,
@@ -67,12 +63,9 @@ public class TournamentService {
         tournament.getTeams()
                 .get(teamId)
                 .getTeamMembers()
-                .stream()
-                .filter(player -> player.getPlayerId()
-                        .equals(playerId))
-                .findFirst()
-                .orElseThrow(() -> new PlayerIdNotFoundException(playerId))
+                .get(playerId)
                 .setName(newPlayerName);
+
         tournamentRepository.save(tournament);
         return playerId;
     }
@@ -81,7 +74,7 @@ public class TournamentService {
         Tournament tournament = tournamentRepository.findById(tournamentId)
                 .orElseThrow(() -> new TournamentIdNotFoundException(tournamentId));
 
-        Team team = new Team(UUID.randomUUID(), teamName, new ArrayList<>() {
+        Team team = new Team(UUID.randomUUID(), teamName, new HashMap<>() {
         });
 
         tournament.getTeams()
@@ -91,11 +84,14 @@ public class TournamentService {
         return team;
     }
 
-    public UUID removeTeamFromTournament(UUID tournamentId, UUID teamId) throws TournamentIdNotFoundException, TeamIdNotFoundException {
+    public UUID removeTeamFromTournament(UUID tournamentId,
+                                         UUID teamId) throws TournamentIdNotFoundException, TeamIdNotFoundException {
         Tournament tournament = tournamentRepository.findById(tournamentId)
                 .orElseThrow(() -> new TournamentIdNotFoundException(tournamentId));
 
-        Optional.ofNullable(tournament.getTeams().remove(teamId)).orElseThrow(() -> new TeamIdNotFoundException(tournamentId));
+        Optional.ofNullable(tournament.getTeams()
+                        .remove(teamId))
+                .orElseThrow(() -> new TeamIdNotFoundException(tournamentId));
         tournamentRepository.save(tournament);
         return teamId;
     }
-- 
GitLab