Invallers
All checks were successful
Gitea/swiss-backend/pipeline/head This commit looks good

This commit is contained in:
2025-09-11 23:43:10 +02:00
parent d7dee35d6e
commit da7ea66d3e
10 changed files with 111 additions and 9 deletions

View File

@@ -183,10 +183,32 @@ public class TournamentPlayService {
}
}
public Tournament substitutePlayer(Tournament tournament, Long playerId, Long substituteId) {
public Tournament substitutePlayer(Tournament tournament, Long eventId, Long playerId, Long substituteId) {
var event = getEvent(tournament, eventId);
var tournamentPlayer = getTournamentPlayer(tournament, playerId);
var substitute = getTournamentPlayer(tournament, substituteId);
var substitution = new TournamentPlayerSubstitution();
substitution.setEvent(event);
substitution.setTournamentPlayer(tournamentPlayer);
substitution.setSubstitute(substitute);
tournamentPlayer.getSubstitutions().add(substitution); //TODO
tournamentRepository.save(tournament);
return tournament;
}
private Event getEvent(Tournament tournament, Long eventId) {
for (var event : tournament.getEvents()) {
if (event.getId().equals(eventId)) {
return event;
}
}
return null;
}
private static class ConflictInDrawException extends RuntimeException {}
private List<Match> tryMatches(List<Team> remainingTeams, Group group) {
@@ -251,7 +273,7 @@ public class TournamentPlayService {
match.setStartTime(LocalDateTime.now());
match.setCourt(court);
var countingPlayer = getPlayer(tournament, counter);
var countingPlayer = getTournamentPlayer(tournament, counter);
countingPlayer.setCounting(true);
match.setCounter(countingPlayer.getPlayer());
@@ -259,7 +281,7 @@ public class TournamentPlayService {
return tournament;
}
private TournamentPlayer getPlayer(Tournament tournament, Long playerId) {
private TournamentPlayer getTournamentPlayer(Tournament tournament, Long playerId) {
for (var tournamentPlayer : tournament.getTournamentPlayers()) {
if (playerId.equals(tournamentPlayer.getPlayer().getId())) {
return tournamentPlayer;
@@ -274,7 +296,7 @@ public class TournamentPlayService {
match.setStartTime(null);
match.setCourt(null);
var countingPlayer = getPlayer(tournament, match.getCounter().getId());
var countingPlayer = getTournamentPlayer(tournament, match.getCounter().getId());
countingPlayer.setCounting(false);
match.setCounter(null);
@@ -294,7 +316,7 @@ public class TournamentPlayService {
var counter = match.getCounter();
if (counter != null) { // match was already saved, this is a correction
var countingPlayer = getPlayer(tournament, counter.getId());
var countingPlayer = getTournamentPlayer(tournament, counter.getId());
countingPlayer.setCounting(false);
countingPlayer.incrementCounts();
match.setCounter(null);