From a87a5a6198519aa401a658a3f68612e25f008a2b Mon Sep 17 00:00:00 2001 From: Paul Reichmuth Date: Wed, 4 Feb 2026 21:14:41 +0100 Subject: [PATCH] refactor pure objects as request body into WSTOs --- .../controllers/RacerRestController.java | 33 ++++++++++--------- .../controllers/TeamMemberRestController.java | 7 ++-- .../controllers/TeamRestController.java | 13 +++++--- 3 files changed, 30 insertions(+), 23 deletions(-) diff --git a/src/main/java/de/pnreichmuth/timekeep_backend/controllers/RacerRestController.java b/src/main/java/de/pnreichmuth/timekeep_backend/controllers/RacerRestController.java index 81b5150..8fe423d 100644 --- a/src/main/java/de/pnreichmuth/timekeep_backend/controllers/RacerRestController.java +++ b/src/main/java/de/pnreichmuth/timekeep_backend/controllers/RacerRestController.java @@ -8,6 +8,7 @@ import de.pnreichmuth.timekeep_backend.exceptions.TeamNotFoundException; import de.pnreichmuth.timekeep_backend.services.RacerService; import de.pnreichmuth.timekeep_backend.services.TeamService; import de.pnreichmuth.timekeep_backend.wsto.RacerWSTO; +import de.pnreichmuth.timekeep_backend.wsto.TeamWSTO; import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -28,7 +29,8 @@ public class RacerRestController { private final TeamService teamService; // ///////////////////////////////////////////////BEGIN POST MAPPINGS/////////////////////////////////////////////////// @PostMapping("createRacer") - public ResponseEntity<@NonNull RacerWSTO> createRacer(@RequestBody Racer racer) { + public ResponseEntity<@NonNull RacerWSTO> createRacer(@RequestBody RacerWSTO racerWSTO) { + Racer racer = RacerWSTO.toEntity(racerWSTO); try { racerService.updateRacer(racer); return new ResponseEntity<>(RacerWSTO.of(racer), HttpStatus.CREATED); @@ -49,26 +51,24 @@ public class RacerRestController { } @GetMapping("singleRacer") - public ResponseEntity<@NonNull RacerWSTO> getSingleRacers(@RequestBody Racer requestRacer){ - Racer actualRacer = racerService.getRacer(requestRacer); - if (actualRacer == null){ - return ResponseEntity.of( - ProblemDetail.forStatusAndDetail( - HttpStatus.NOT_FOUND, - String.format("Racer with name %s %s not found", - requestRacer.getFirstName(), requestRacer.getLastName() - ) - ) - ).build(); + public ResponseEntity<@NonNull RacerWSTO> getSingleRacers(@RequestBody RacerWSTO requestRacerWSTO){ + try{ + Racer actualRacer = racerService.getRacer(RacerWSTO.toEntity(requestRacerWSTO)); + return ResponseEntity.ok(RacerWSTO.of(actualRacer)); + } + catch (RacerNotFoundException e){ + return ResponseEntity.of(ProblemDetail.forStatusAndDetail(HttpStatus.NOT_FOUND, e.getMessage())).build(); + } + catch (IllegalArgumentException e) { + return ResponseEntity.of(ProblemDetail.forStatusAndDetail(HttpStatus.BAD_REQUEST, e.getMessage())).build(); } - return ResponseEntity.ok(RacerWSTO.of(actualRacer)); } @GetMapping("byTeam") - public ResponseEntity<@NonNull List> getByTeam(@RequestBody Team requestTeam){ + public ResponseEntity<@NonNull List> getByTeam(@RequestBody TeamWSTO requestTeamWSTO){ Team dbTeam; try { - dbTeam = teamService.getTeam(requestTeam); + dbTeam = teamService.getTeam(TeamWSTO.toEntity(requestTeamWSTO)); } catch (TeamNotFoundException e) { return ResponseEntity.of(ProblemDetail.forStatusAndDetail(HttpStatus.NOT_FOUND, e.getMessage())).build(); } @@ -81,7 +81,8 @@ public class RacerRestController { // ////////////////////////////////////////////////BEGIN DELETE MAPPINGS/////////////////////////////////////////////////// @DeleteMapping("/removeRacer") - public ResponseEntity removeRacer(@RequestBody Racer racer){ + public ResponseEntity removeRacer(@RequestBody RacerWSTO racerWSTO){ + Racer racer = RacerWSTO.toEntity(racerWSTO); try { racerService.deleteRacer(racer); return ResponseEntity.ok(racer); diff --git a/src/main/java/de/pnreichmuth/timekeep_backend/controllers/TeamMemberRestController.java b/src/main/java/de/pnreichmuth/timekeep_backend/controllers/TeamMemberRestController.java index 4507355..86cdc49 100644 --- a/src/main/java/de/pnreichmuth/timekeep_backend/controllers/TeamMemberRestController.java +++ b/src/main/java/de/pnreichmuth/timekeep_backend/controllers/TeamMemberRestController.java @@ -5,6 +5,7 @@ import de.pnreichmuth.timekeep_backend.entities.Team; import de.pnreichmuth.timekeep_backend.exceptions.ExistsException; import de.pnreichmuth.timekeep_backend.exceptions.NotFoundException; import de.pnreichmuth.timekeep_backend.services.TeamService; +import de.pnreichmuth.timekeep_backend.wsto.RacerWSTO; import de.pnreichmuth.timekeep_backend.wsto.TeamWSTO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -23,9 +24,10 @@ public class TeamMemberRestController { // ///////////////////////////////////////////////BEGIN POST MAPPINGS/////////////////////////////////////////////////// @PostMapping("/addMemberToTeam") - public ResponseEntity addMemberToTeam(@RequestParam("teamName") String teamName, @RequestBody Racer racer) { + public ResponseEntity addMemberToTeam(@RequestParam("teamName") String teamName, @RequestBody RacerWSTO racerWsto) { Team mockTeam = new Team(); mockTeam.setTeamName(teamName); + Racer racer = RacerWSTO.toEntity(racerWsto); try{ this.teamService.addMember(mockTeam,racer); } @@ -39,9 +41,10 @@ public class TeamMemberRestController { } // ///////////////////////////////////////////////BEGIN DELETE MAPPINGS/////////////////////////////////////////////////// @DeleteMapping("/removeMemberFromTeam") - public ResponseEntity removeMemberFromTeam(@RequestParam("teamName") String teamName, @RequestBody Racer racer) { + public ResponseEntity removeMemberFromTeam(@RequestParam("teamName") String teamName, @RequestBody RacerWSTO racerWsto) { Team mockTeam = new Team(); mockTeam.setTeamName(teamName); + Racer racer = RacerWSTO.toEntity(racerWsto); try{ this.teamService.removeMember(mockTeam,racer); } diff --git a/src/main/java/de/pnreichmuth/timekeep_backend/controllers/TeamRestController.java b/src/main/java/de/pnreichmuth/timekeep_backend/controllers/TeamRestController.java index d24c30b..3c564f3 100644 --- a/src/main/java/de/pnreichmuth/timekeep_backend/controllers/TeamRestController.java +++ b/src/main/java/de/pnreichmuth/timekeep_backend/controllers/TeamRestController.java @@ -34,7 +34,8 @@ public class TeamRestController { * either containing a TeamWSTO if a team was successfully created or a HttpStatus.CONFLICT if the team already existed beforehand */ @PostMapping("createTeam") - public ResponseEntity<@NonNull TeamWSTO> createTeam(@RequestBody Team team){ + public ResponseEntity<@NonNull TeamWSTO> createTeam(@RequestBody TeamWSTO teamwsto){ + Team team = TeamWSTO.toEntity(teamwsto); try { teamService.createTeam(team); return new ResponseEntity<>(TeamWSTO.of(team), HttpStatus.CREATED); @@ -65,11 +66,12 @@ public class TeamRestController { /** * Gets all the information pertaining to a given team via the API - * @param reqTeam the team to query all information about with either a name or an id field set + * @param reqTeamWSTO the teamWSTO to query all information about with either a name or an id field set * @return a ResponseEntity containing the team in WSTO form, or a ResponseEntity containing either BAD_REQUEST or NOT_FOUND. */ @GetMapping("single-team") - public ResponseEntity<@NonNull TeamWSTO> getSingleTeam(@RequestBody Team reqTeam){ + public ResponseEntity<@NonNull TeamWSTO> getSingleTeam(@RequestBody TeamWSTO reqTeamWSTO){ + Team reqTeam = TeamWSTO.toEntity(reqTeamWSTO); UUID id = reqTeam.getId(); String name = reqTeam.getTeamName(); Team actualTeam; @@ -100,12 +102,13 @@ public class TeamRestController { /** * Deletes a team via its name or id - * @param team the team to query all information about with either a name or an id field set + * @param teamWSTO the teamWSTO to query all information about with either a name or an id field set * @return a ResponseEntity containing HttpStatus.OK if deletion was successful, * or a ResponseEntity containing either BAD_REQUEST or NOT_FOUND. */ @DeleteMapping("single-team") - public ResponseEntity<@NonNull String> deleteTeam(@RequestBody Team team){ + public ResponseEntity<@NonNull String> deleteTeam(@RequestBody TeamWSTO teamWSTO){ + Team team = TeamWSTO.toEntity(teamWSTO); String name = team.getTeamName(); UUID id = team.getId(); try {