add deleteRacer mapping

This commit is contained in:
2026-02-04 16:19:45 +01:00
parent d93650409a
commit fca00d8ff4
2 changed files with 22 additions and 6 deletions

View File

@@ -3,6 +3,7 @@ package de.pnreichmuth.timekeep_backend.controllers;
import de.pnreichmuth.timekeep_backend.entities.Racer; import de.pnreichmuth.timekeep_backend.entities.Racer;
import de.pnreichmuth.timekeep_backend.entities.Team; import de.pnreichmuth.timekeep_backend.entities.Team;
import de.pnreichmuth.timekeep_backend.exceptions.RacerExistsException; 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.exceptions.TeamNotFoundException;
import de.pnreichmuth.timekeep_backend.services.RacerService; import de.pnreichmuth.timekeep_backend.services.RacerService;
import de.pnreichmuth.timekeep_backend.services.TeamService; import de.pnreichmuth.timekeep_backend.services.TeamService;
@@ -49,7 +50,7 @@ public class RacerRestController {
} }
@GetMapping("singleRacer") @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()); Racer actualRacer = racerService.getRacer(requestRacer.getFirstName(), requestRacer.getLastName());
if (actualRacer == null){ if (actualRacer == null){
return ResponseEntity.of( return ResponseEntity.of(
@@ -65,7 +66,7 @@ public class RacerRestController {
} }
@GetMapping("byTeam") @GetMapping("byTeam")
public ResponseEntity<@NonNull List<RacerWSTO>> getByTeam(@RequestParam Team requestTeam){ public ResponseEntity<@NonNull List<RacerWSTO>> getByTeam(@RequestBody Team requestTeam){
UUID teamID = requestTeam.getId(); UUID teamID = requestTeam.getId();
String teamName = requestTeam.getTeamName(); String teamName = requestTeam.getTeamName();
Team dbTeam; Team dbTeam;
@@ -81,6 +82,17 @@ public class RacerRestController {
} }
// ////////////////////////////////////////////////BEGIN DELETE MAPPINGS/////////////////////////////////////////////////// // ////////////////////////////////////////////////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();
}
}
} }

View File

@@ -72,9 +72,13 @@ public class RacerService {
return racerRepository.save(racer); return racerRepository.save(racer);
} }
public void deleteRacer(UUID id) throws RacerNotFoundException { public void deleteRacer(Racer racer) throws RacerNotFoundException {
Racer racer = racerRepository.findById(id).orElse(null); Racer dbRacer;
if(racer == null) throw new RacerNotFoundException("Racer not found"); 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{ public void updateRacer(Racer racer) throws RacerExistsException{