From 90d12c1e9167446385e6f29baf3f3a8f28020ae8 Mon Sep 17 00:00:00 2001 From: Jonas <jonas.fischer14@gmx.de> Date: Mon, 18 Dec 2023 15:36:23 +0100 Subject: [PATCH] 18.12.2023 - create controller class and endpoints #22 --- .../controller/TournamentController.java | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sth-backend/src/main/java/hdm/mi/sthbackend/controller/TournamentController.java diff --git a/sth-backend/src/main/java/hdm/mi/sthbackend/controller/TournamentController.java b/sth-backend/src/main/java/hdm/mi/sthbackend/controller/TournamentController.java new file mode 100644 index 0000000..074bd86 --- /dev/null +++ b/sth-backend/src/main/java/hdm/mi/sthbackend/controller/TournamentController.java @@ -0,0 +1,65 @@ +package hdm.mi.sthbackend.controller; + + +import hdm.mi.sthbackend.exeptions.PlayerIdNotFoundException; +import hdm.mi.sthbackend.exeptions.TournamentIdNotFoundException; +import hdm.mi.sthbackend.model.Player; +import hdm.mi.sthbackend.model.Team; +import hdm.mi.sthbackend.model.Tournament; +import hdm.mi.sthbackend.service.TournamentService; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.UUID; + +@RestController +@RequestMapping("/api/v1/tournaments") +@AllArgsConstructor +public class TournamentController { + + private final TournamentService service; + + /** + * Player Endpoints + **/ + @PatchMapping("/{tournamentId}/teams/{teamId}/players/{playerId}") + public UUID updatePlayerName(@PathVariable UUID tournamentId, + @PathVariable UUID teamId, + @PathVariable UUID playerId, + @RequestBody String newPlayerName) throws Exception { + return service.updatePlayerName(tournamentId, teamId, playerId, newPlayerName); + } + + /** + * Team Endpoints + **/ + @PostMapping("/{tournamentId}/teams") + public Team createTeam(@PathVariable UUID tournamentId, + @RequestBody String teamName) throws TournamentIdNotFoundException { + return service.createTeam(tournamentId, teamName); + } + + @PostMapping("/{tournamentId}/teams/{teamId}/addPlayer") + public Player addPlayerToTeam(@PathVariable UUID tournamentId, + @PathVariable UUID teamId, + @RequestBody String playerName) throws Exception { + return service.addPlayerToTeam(tournamentId, teamId, playerName); + } + + @DeleteMapping("/{tournamentId}/teams/{teamId}/players/{playerId}") + public Player removePlayerFromTeam(@PathVariable UUID tournamentId, + @PathVariable UUID teamId, + @PathVariable UUID playerId) throws PlayerIdNotFoundException, TournamentIdNotFoundException { + return service.removePlayerFromTeam(tournamentId, teamId, playerId); + } + + + /** + * Tournament Endpoints + */ + @PostMapping + public Tournament createTournament(@RequestBody String tournamentName) { + return service.createTournament(tournamentName); + } + +} -- GitLab