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