From 0a65a47749a48aa59f91bd97244dfb6ab2115895 Mon Sep 17 00:00:00 2001 From: Paul Reichmuth Date: Wed, 4 Feb 2026 17:55:36 +0100 Subject: [PATCH] refactor getRacer to be more universal --- .../controllers/RacerRestController.java | 2 +- .../timekeep_backend/services/RacerService.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 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 e2ce77e..34e7105 100644 --- a/src/main/java/de/pnreichmuth/timekeep_backend/controllers/RacerRestController.java +++ b/src/main/java/de/pnreichmuth/timekeep_backend/controllers/RacerRestController.java @@ -51,7 +51,7 @@ public class RacerRestController { @GetMapping("singleRacer") public ResponseEntity<@NonNull RacerWSTO> getSingleRacers(@RequestBody Racer requestRacer){ - Racer actualRacer = racerService.getRacer(requestRacer.getFirstName(), requestRacer.getLastName()); + Racer actualRacer = racerService.getRacer(requestRacer); if (actualRacer == null){ return ResponseEntity.of( ProblemDetail.forStatusAndDetail( diff --git a/src/main/java/de/pnreichmuth/timekeep_backend/services/RacerService.java b/src/main/java/de/pnreichmuth/timekeep_backend/services/RacerService.java index 6288752..83dc110 100644 --- a/src/main/java/de/pnreichmuth/timekeep_backend/services/RacerService.java +++ b/src/main/java/de/pnreichmuth/timekeep_backend/services/RacerService.java @@ -52,6 +52,15 @@ public class RacerService { return racer; } + public Racer getRacer(Racer racer) throws RacerNotFoundException { + Racer dbRacer; + if(racer.getRacerID() != null) dbRacer = racerRepository.getRacerByRacerID(racer.getRacerID()).orElse(null); + else if(racer.getFirstName() != null && racer.getLastName() != null) dbRacer = racerRepository.getRacerByFirstNameAndLastName(racer.getFirstName(),racer.getLastName()).orElse(null); + else throw new IllegalArgumentException("Must provide either Racer ID or full Racer name"); + if(dbRacer == null) throw new RacerNotFoundException("Racer not found"); + return dbRacer; + } + public UUID getRacerIdByName(String firstName, String lastName) throws RacerNotFoundException { Racer racer = racerRepository.getRacerByFirstNameAndLastName(firstName,lastName).orElse(null); if(racer == null) throw new RacerNotFoundException(String.format("Racer with name %s %s not found", firstName, lastName)); @@ -74,7 +83,7 @@ public class RacerService { public void deleteRacer(Racer racer) throws RacerNotFoundException { Racer dbRacer; - if(racer.getRacerID() != null) dbRacer = racerRepository.getRacerByFirstNameAndLastName(racer.getFirstName(),racer.getLastName()).orElse(null); + if(racer.getRacerID() != null) dbRacer = racerRepository.getRacerByRacerID(racer.getRacerID()).orElse(null); else if(racer.getFirstName() != null && racer.getLastName() != null) dbRacer = racerRepository.getRacerByFirstNameAndLastName(racer.getFirstName(),racer.getLastName()).orElse(null); else throw new IllegalArgumentException("Must provide either Racer ID or full Racer name"); if(dbRacer == null) throw new RacerNotFoundException("Racer not found");