From fca00d8ff476d8eb603cc1e52dd501575039edf7 Mon Sep 17 00:00:00 2001
From: Paul Reichmuth
Date: Wed, 4 Feb 2026 16:19:45 +0100
Subject: [PATCH] add deleteRacer mapping
---
.../controllers/RacerRestController.java | 18 +++++++++++++++---
.../services/RacerService.java | 10 +++++++---
2 files changed, 22 insertions(+), 6 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 a176d8c..da2862e 100644
--- a/src/main/java/de/pnreichmuth/timekeep_backend/controllers/RacerRestController.java
+++ b/src/main/java/de/pnreichmuth/timekeep_backend/controllers/RacerRestController.java
@@ -3,6 +3,7 @@ package de.pnreichmuth.timekeep_backend.controllers;
import de.pnreichmuth.timekeep_backend.entities.Racer;
import de.pnreichmuth.timekeep_backend.entities.Team;
import de.pnreichmuth.timekeep_backend.exceptions.RacerExistsException;
+import de.pnreichmuth.timekeep_backend.exceptions.RacerNotFoundException;
import de.pnreichmuth.timekeep_backend.exceptions.TeamNotFoundException;
import de.pnreichmuth.timekeep_backend.services.RacerService;
import de.pnreichmuth.timekeep_backend.services.TeamService;
@@ -49,7 +50,7 @@ public class RacerRestController {
}
@GetMapping("singleRacer")
- public ResponseEntity<@NonNull RacerWSTO> getSingleRacers(@RequestParam Racer requestRacer){
+ public ResponseEntity<@NonNull RacerWSTO> getSingleRacers(@RequestBody Racer requestRacer){
Racer actualRacer = racerService.getRacer(requestRacer.getFirstName(), requestRacer.getLastName());
if (actualRacer == null){
return ResponseEntity.of(
@@ -65,7 +66,7 @@ public class RacerRestController {
}
@GetMapping("byTeam")
- public ResponseEntity<@NonNull List> getByTeam(@RequestParam Team requestTeam){
+ public ResponseEntity<@NonNull List> getByTeam(@RequestBody Team requestTeam){
UUID teamID = requestTeam.getId();
String teamName = requestTeam.getTeamName();
Team dbTeam;
@@ -81,6 +82,17 @@ public class RacerRestController {
}
// ////////////////////////////////////////////////BEGIN DELETE MAPPINGS///////////////////////////////////////////////////
-
+ @DeleteMapping("/removeRacer")
+ public ResponseEntity> removeRacer(@RequestBody Racer racer){
+ try {
+ racerService.deleteRacer(racer);
+ return ResponseEntity.ok(racer);
+ }
+ catch (IllegalArgumentException e) {
+ return ResponseEntity.of(ProblemDetail.forStatusAndDetail(HttpStatus.BAD_REQUEST, e.getMessage())).build();
+ } catch (RacerNotFoundException e) {
+ return ResponseEntity.of(ProblemDetail.forStatusAndDetail(HttpStatus.NOT_FOUND, e.getMessage())).build();
+ }
+ }
}
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 3a7d456..6288752 100644
--- a/src/main/java/de/pnreichmuth/timekeep_backend/services/RacerService.java
+++ b/src/main/java/de/pnreichmuth/timekeep_backend/services/RacerService.java
@@ -72,9 +72,13 @@ public class RacerService {
return racerRepository.save(racer);
}
- public void deleteRacer(UUID id) throws RacerNotFoundException {
- Racer racer = racerRepository.findById(id).orElse(null);
- if(racer == null) throw new RacerNotFoundException("Racer not found");
+ public void deleteRacer(Racer racer) throws RacerNotFoundException {
+ Racer dbRacer;
+ if(racer.getRacerID() != null) dbRacer = racerRepository.getRacerByFirstNameAndLastName(racer.getFirstName(),racer.getLastName()).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");
+ racerRepository.delete(dbRacer);
}
public void updateRacer(Racer racer) throws RacerExistsException{