diff --git a/race/src/main/java/cz/muni/pa165/race/rest/RaceController.java b/race/src/main/java/cz/muni/pa165/race/rest/RaceController.java index 80de83e4a69788982a29cc3c922fcc0cbe352822..907c1066bfcde52f66c95b7c435817bd4d882bde 100644 --- a/race/src/main/java/cz/muni/pa165/race/rest/RaceController.java +++ b/race/src/main/java/cz/muni/pa165/race/rest/RaceController.java @@ -3,8 +3,6 @@ package cz.muni.pa165.race.rest; import cz.muni.pa165.common_library.dtos.Location; import cz.muni.pa165.common_library.dtos.RaceDto; -import cz.muni.pa165.race.data.model.Race; -import cz.muni.pa165.race.service.RaceService; import cz.muni.pa165.race.service.RaceServiceI; import io.swagger.v3.oas.annotations.Operation; import jakarta.validation.Valid; @@ -68,8 +66,8 @@ public class RaceController { @PatchMapping(path = "/assignDriverOne", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<RaceDto> assignDriverOne(@RequestParam Long driverOneId, - @RequestParam Long raceId, - @RequestParam Long carId) { + @RequestParam Long raceId, + @RequestParam Long carId) { return ResponseEntity.ok(raceService.assignDriverOne(driverOneId, raceId, carId)); } @@ -77,8 +75,8 @@ public class RaceController { @PatchMapping(path = "/assignDriverTwo", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<RaceDto> assignDriverTwo(@RequestParam Long driverTwoId, - @RequestParam Long raceId, - @RequestParam Long carId) { + @RequestParam Long raceId, + @RequestParam Long carId) { return ResponseEntity.ok(raceService.assignDriverTwo(driverTwoId, raceId, carId)); } @@ -86,7 +84,7 @@ public class RaceController { @PatchMapping(path = "/assignPointsDriverTwo", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<RaceDto> assignPositionDriverTwo(@RequestParam Long raceId, - @RequestParam Integer position) { + @RequestParam Integer position) { return ResponseEntity.ok(raceService.assignPositionForDriverTwo(raceId, position)); } @@ -100,7 +98,8 @@ public class RaceController { @Operation(summary = "get races") @GetMapping(path = "/findMostSuitableDriversForLocation") - public ResponseEntity<Set<Long>> getMostSuitableDriversForLocation(@RequestParam Location location) { + public ResponseEntity<Set<Long>> getMostSuitableDriversForLocation( + @RequestParam Location location) { return ResponseEntity.ok(raceService.findMostSuitableDriver(location)); } } diff --git a/race/src/main/java/cz/muni/pa165/race/service/PointsUtil.java b/race/src/main/java/cz/muni/pa165/race/service/PointsUtil.java index 7b7d9711a1dd09ec6e433ab968aca1480708a95a..22e9f8dd19feed47eb2395281fe3db6aa23c0381 100644 --- a/race/src/main/java/cz/muni/pa165/race/service/PointsUtil.java +++ b/race/src/main/java/cz/muni/pa165/race/service/PointsUtil.java @@ -2,12 +2,20 @@ package cz.muni.pa165.race.service; import java.util.HashMap; import java.util.Map; -import java.util.Set; +/** + * Utility for points per position. + */ public class PointsUtil { + /** + * Map with position and corresponding points. + */ public Map<Integer, Integer> points; + /** + * Constructor. + */ public PointsUtil() { points = new HashMap<>(); points.put(1, 25); diff --git a/race/src/main/java/cz/muni/pa165/race/service/RaceService.java b/race/src/main/java/cz/muni/pa165/race/service/RaceService.java index 81145b65ca554891015385854f969ce7671b99ba..48797427e5a4ea415d066893b00fbc75636b3fbc 100644 --- a/race/src/main/java/cz/muni/pa165/race/service/RaceService.java +++ b/race/src/main/java/cz/muni/pa165/race/service/RaceService.java @@ -123,6 +123,13 @@ public class RaceService implements RaceServiceI { return raceRepository.findAll().stream().map(this::convertRace).toList(); } + /** + * Assigns positions for driver number two. + * + * @param raceId race id. + * @param position position of driver two. + * @return updated race. + */ public RaceDto assignPositionForDriverTwo(Long raceId, Integer position) { var race = raceRepository.findById(raceId).orElseThrow(() -> new DatabaseException("Race not found")); @@ -130,6 +137,13 @@ public class RaceService implements RaceServiceI { return convertRace(raceRepository.save(race)); } + /** + * Assigns positions for driver number one. + * + * @param raceId race id. + * @param position position of driver one. + * @return updated race. + */ public RaceDto assignPositionForDriverOne(Long raceId, Integer position) { var race = raceRepository.findById(raceId).orElseThrow(() -> new DatabaseException("Race not found")); @@ -137,6 +151,12 @@ public class RaceService implements RaceServiceI { return convertRace(raceRepository.save(race)); } + /** + * Finds most suitable drivers for given location. + * + * @param location location of the race. + * @return set if ids of most suitable drivers for given location. + */ public Set<Long> findMostSuitableDriver(Location location) { var races = raceRepository.findRacesByLocation(location); Map<Long, Integer> driverWithPoints = new HashMap<>(); diff --git a/race/src/main/java/cz/muni/pa165/race/service/RaceServiceI.java b/race/src/main/java/cz/muni/pa165/race/service/RaceServiceI.java index 1727f7ca1fd871735d5dbf1731808b97689b14ba..55e92823da8ac08e19eae21e20581b8374a23bb0 100644 --- a/race/src/main/java/cz/muni/pa165/race/service/RaceServiceI.java +++ b/race/src/main/java/cz/muni/pa165/race/service/RaceServiceI.java @@ -2,10 +2,12 @@ package cz.muni.pa165.race.service; import cz.muni.pa165.common_library.dtos.Location; import cz.muni.pa165.common_library.dtos.RaceDto; -import cz.muni.pa165.race.data.model.Race; import java.util.List; import java.util.Set; +/** + * Race service interface. + */ public interface RaceServiceI { RaceDto postRace(RaceDto raceDto);