diff --git a/car/src/main/java/cz/muni/pa165/car/App.java b/car/src/main/java/cz/muni/pa165/car/App.java index 9d3cd300580e2384f6ed002b2bb5808acb450f85..8d546b5142bc6cde3c95a98f00ed947ae323e2bb 100644 --- a/car/src/main/java/cz/muni/pa165/car/App.java +++ b/car/src/main/java/cz/muni/pa165/car/App.java @@ -1,11 +1,10 @@ package cz.muni.pa165.car; -import org.json.JSONArray; -import org.json.JSONObject; +import cz.muni.pa165.common_library.exception.RestExceptionHandler; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; -import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; /** @@ -14,6 +13,7 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories; @SpringBootApplication(scanBasePackages = {"cz.muni.pa165.car"}) @EnableJpaRepositories(basePackages = {"cz.muni.pa165.car"}) @EntityScan("cz.muni.pa165.common_library") +@Import(RestExceptionHandler.class) public class App { public static void main(String[] args) { diff --git a/car/src/main/java/cz/muni/pa165/car/api/CarComponentDto.java b/car/src/main/java/cz/muni/pa165/car/api/CarComponentDto.java deleted file mode 100644 index f24bb966eb1c83c9384a5ebef8d1dbbc97aa91a0..0000000000000000000000000000000000000000 --- a/car/src/main/java/cz/muni/pa165/car/api/CarComponentDto.java +++ /dev/null @@ -1,29 +0,0 @@ -package cz.muni.pa165.car.api; - -import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotNull; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * Data Transfer object for CarComponent class. - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class CarComponentDto { - - @NotNull - @Schema(description = "component id", - example = "1") - Long id; - - @NotNull - @Schema(description = "component name", - example = "Default engine") - String name; - -} diff --git a/car/src/main/java/cz/muni/pa165/car/data/repository/CarRepository.java b/car/src/main/java/cz/muni/pa165/car/data/repository/CarRepository.java index 8b339b875199fa94b8e8eba1e2b3990216039a79..d624d845943bec0a1989b399f3e3a6d1cddbf885 100644 --- a/car/src/main/java/cz/muni/pa165/car/data/repository/CarRepository.java +++ b/car/src/main/java/cz/muni/pa165/car/data/repository/CarRepository.java @@ -1,11 +1,12 @@ package cz.muni.pa165.car.data.repository; + import cz.muni.pa165.common_library.racecomponents.Car; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; /** - * Repository for car. + * Car Repository for Driver Manager. */ @Repository public interface CarRepository extends JpaRepository<Car, Long> {} diff --git a/car/src/main/java/cz/muni/pa165/car/rest/CarComponentPairController.java b/car/src/main/java/cz/muni/pa165/car/rest/CarComponentPairController.java index 1ef67e4bc66f882d50031118192c1cf075d28ddd..a36ff9c478bd281801c6c6afc42c0fbb71c47b2a 100644 --- a/car/src/main/java/cz/muni/pa165/car/rest/CarComponentPairController.java +++ b/car/src/main/java/cz/muni/pa165/car/rest/CarComponentPairController.java @@ -1,8 +1,8 @@ package cz.muni.pa165.car.rest; -import cz.muni.pa165.car.api.CarComponentDto; -import cz.muni.pa165.car.api.CarDto; import cz.muni.pa165.car.service.CarComponentPairService; +import cz.muni.pa165.common_library.dtos.CarComponentDto; +import cz.muni.pa165.common_library.dtos.CarDto; import io.swagger.v3.oas.annotations.Operation; import java.util.List; import org.springframework.http.MediaType; @@ -28,7 +28,7 @@ public class CarComponentPairController { } /** - * Calls facade to add a component to a car. + * Calls service to add a component to a car. * * @param componentId Id of the component. * @param carId Id of the car. @@ -43,7 +43,7 @@ public class CarComponentPairController { } /** - * Calls facade to remove a component from a car. + * Calls service to remove a component from a car. * * @param componentId Id of the component. * @param carId Id of the car. @@ -58,7 +58,7 @@ public class CarComponentPairController { } /** - * Calls facade to get all components of a car. + * Calls service to get all components of a car. * * @param carId Id of the car. * @return List of components. diff --git a/car/src/main/java/cz/muni/pa165/car/rest/CarController.java b/car/src/main/java/cz/muni/pa165/car/rest/CarController.java index e3d2b3e7be2651b074ea11f081c8643c7a48ff66..8dd02ec82a53c8306e3b962cea4889eb16a37001 100644 --- a/car/src/main/java/cz/muni/pa165/car/rest/CarController.java +++ b/car/src/main/java/cz/muni/pa165/car/rest/CarController.java @@ -1,7 +1,7 @@ package cz.muni.pa165.car.rest; -import cz.muni.pa165.car.api.CarDto; import cz.muni.pa165.car.service.CarService; +import cz.muni.pa165.common_library.dtos.CarDto; import io.swagger.v3.oas.annotations.Operation; import jakarta.validation.Valid; import java.util.List; @@ -56,7 +56,7 @@ public class CarController { */ @Operation(summary = "Delete a car") @DeleteMapping(path = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity<String> deleteCar(@Valid @RequestParam long carId) { + public ResponseEntity<String> deleteCar(@RequestParam Long carId) { return ResponseEntity.ok(carService.deleteById(carId)); } @@ -68,7 +68,7 @@ public class CarController { */ @Operation(summary = "Get a car") @GetMapping(path = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE) - public ResponseEntity<CarDto> getCar(@RequestParam long carId) { + public ResponseEntity<CarDto> getCar(@RequestParam Long carId) { return ResponseEntity.ok(carService.getCarById(carId)); } diff --git a/car/src/main/java/cz/muni/pa165/car/rest/CarDriverPairController.java b/car/src/main/java/cz/muni/pa165/car/rest/CarDriverPairController.java index 2c32e1bdc668362eda837ecd12452f0dc0fc0c1f..88631333bdac050fb34f5f198982d3c53b91a96e 100644 --- a/car/src/main/java/cz/muni/pa165/car/rest/CarDriverPairController.java +++ b/car/src/main/java/cz/muni/pa165/car/rest/CarDriverPairController.java @@ -1,8 +1,8 @@ package cz.muni.pa165.car.rest; -import cz.muni.pa165.car.api.CarDto; -import cz.muni.pa165.car.api.DriverDto; import cz.muni.pa165.car.service.CarDriverPairService; +import cz.muni.pa165.common_library.dtos.CarDto; +import cz.muni.pa165.common_library.dtos.DriverDto; import io.swagger.v3.oas.annotations.Operation; import java.util.List; import org.springframework.http.MediaType; @@ -28,7 +28,7 @@ public class CarDriverPairController { } /** - * Calls facade to assign a driver to a car. + * Calls service to assign a driver to a car. * * @param driverId Id of the driver. * @param carId Id of the car. @@ -43,7 +43,7 @@ public class CarDriverPairController { } /** - * Calls facade to unassing a driver from a car. + * Calls service to unassing a driver from a car. * * @param driverId Id of the driver. * @param carId Id of the car. @@ -58,7 +58,7 @@ public class CarDriverPairController { } /** - * Calls facade to return all drivers assigned to a car. + * Calls service to return all drivers assigned to a car. * * @param carId Id of the car. * @return List of drivers. diff --git a/car/src/main/java/cz/muni/pa165/car/service/CarComponentPairService.java b/car/src/main/java/cz/muni/pa165/car/service/CarComponentPairService.java index 28b96cc5638d5cd0037e9e755158d390a13570dc..5bd94c3db8f658b9be98321a7d7efb5f2a5a3750 100644 --- a/car/src/main/java/cz/muni/pa165/car/service/CarComponentPairService.java +++ b/car/src/main/java/cz/muni/pa165/car/service/CarComponentPairService.java @@ -1,7 +1,7 @@ package cz.muni.pa165.car.service; -import cz.muni.pa165.car.api.CarComponentDto; -import cz.muni.pa165.car.api.CarDto; +import cz.muni.pa165.common_library.dtos.CarComponentDto; +import cz.muni.pa165.common_library.dtos.CarDto; import java.util.List; /** diff --git a/car/src/main/java/cz/muni/pa165/car/service/CarComponentPairServiceImpl.java b/car/src/main/java/cz/muni/pa165/car/service/CarComponentPairServiceImpl.java index d14e38914c4dda89757977dc6102e76b02a11008..e136a426eb93ec0974392fbf47d08df878456a0b 100644 --- a/car/src/main/java/cz/muni/pa165/car/service/CarComponentPairServiceImpl.java +++ b/car/src/main/java/cz/muni/pa165/car/service/CarComponentPairServiceImpl.java @@ -1,10 +1,10 @@ package cz.muni.pa165.car.service; -import cz.muni.pa165.car.api.CarComponentDto; -import cz.muni.pa165.car.api.CarDto; import cz.muni.pa165.car.data.repository.CarComponentPairRepository; import cz.muni.pa165.car.data.repository.CarComponentRepository; import cz.muni.pa165.car.data.repository.CarRepository; +import cz.muni.pa165.common_library.dtos.CarComponentDto; +import cz.muni.pa165.common_library.dtos.CarDto; import cz.muni.pa165.common_library.exception.DatabaseException; import cz.muni.pa165.common_library.racecomponents.CarComponent; import java.util.ArrayList; @@ -74,6 +74,9 @@ public class CarComponentPairServiceImpl implements CarComponentPairService { componentDtos.add( new CarComponentDto( c.getId(), + c.getWeight(), + c.getPrice(), + c.getManufacturer(), c.getName() ) ); diff --git a/car/src/main/java/cz/muni/pa165/car/service/CarDriverPairService.java b/car/src/main/java/cz/muni/pa165/car/service/CarDriverPairService.java index 6136d5730cb70d0ab8d81e0f8b36f146af684804..edc598223d253a83c62269fa2b3a04ead082ab46 100644 --- a/car/src/main/java/cz/muni/pa165/car/service/CarDriverPairService.java +++ b/car/src/main/java/cz/muni/pa165/car/service/CarDriverPairService.java @@ -1,7 +1,7 @@ package cz.muni.pa165.car.service; -import cz.muni.pa165.car.api.CarDto; -import cz.muni.pa165.car.api.DriverDto; +import cz.muni.pa165.common_library.dtos.CarDto; +import cz.muni.pa165.common_library.dtos.DriverDto; import java.util.List; /** diff --git a/car/src/main/java/cz/muni/pa165/car/service/CarDriverPairServiceImpl.java b/car/src/main/java/cz/muni/pa165/car/service/CarDriverPairServiceImpl.java index 0b9bee0a208e7c58d6d98de93b71a50802083940..68a4d81aae21765b8a9ad352fc3542d67fb3201d 100644 --- a/car/src/main/java/cz/muni/pa165/car/service/CarDriverPairServiceImpl.java +++ b/car/src/main/java/cz/muni/pa165/car/service/CarDriverPairServiceImpl.java @@ -1,10 +1,10 @@ package cz.muni.pa165.car.service; -import cz.muni.pa165.car.api.CarDto; -import cz.muni.pa165.car.api.DriverDto; import cz.muni.pa165.car.data.repository.CarDriverPairRepository; import cz.muni.pa165.car.data.repository.CarRepository; import cz.muni.pa165.car.data.repository.DriverRepository; +import cz.muni.pa165.common_library.dtos.CarDto; +import cz.muni.pa165.common_library.dtos.DriverDto; import cz.muni.pa165.common_library.exception.DatabaseException; import cz.muni.pa165.common_library.racecomponents.Driver; import java.util.ArrayList; diff --git a/car/src/main/java/cz/muni/pa165/car/service/CarService.java b/car/src/main/java/cz/muni/pa165/car/service/CarService.java index 688ba89ede0c51df6e7d1ad75ed08260fe457c28..7fe1dbf0aed56f0e32d8d667c36727b59721fc4f 100644 --- a/car/src/main/java/cz/muni/pa165/car/service/CarService.java +++ b/car/src/main/java/cz/muni/pa165/car/service/CarService.java @@ -1,6 +1,6 @@ package cz.muni.pa165.car.service; -import cz.muni.pa165.car.api.CarDto; +import cz.muni.pa165.common_library.dtos.CarDto; import java.util.List; /** diff --git a/car/src/main/java/cz/muni/pa165/car/service/CarServiceImpl.java b/car/src/main/java/cz/muni/pa165/car/service/CarServiceImpl.java index 2be8f2e48c0d21abe01070315a01d312040078c4..628b91fd2f7939d50c718ed1d2378a7579f741e9 100644 --- a/car/src/main/java/cz/muni/pa165/car/service/CarServiceImpl.java +++ b/car/src/main/java/cz/muni/pa165/car/service/CarServiceImpl.java @@ -1,9 +1,9 @@ package cz.muni.pa165.car.service; -import cz.muni.pa165.car.api.CarDto; import cz.muni.pa165.car.data.repository.CarComponentRepository; import cz.muni.pa165.car.data.repository.CarRepository; import cz.muni.pa165.car.data.repository.DriverRepository; +import cz.muni.pa165.common_library.dtos.CarDto; import cz.muni.pa165.common_library.exception.DatabaseException; import cz.muni.pa165.common_library.racecomponents.Car; import java.util.ArrayList; diff --git a/common_library/pom.xml b/common_library/pom.xml index 4e35100cd8de24ed9cf15c5618e487bae2cd74de..b4de2b6dd29cbad35645459ba4027021970749ab 100644 --- a/common_library/pom.xml +++ b/common_library/pom.xml @@ -41,5 +41,11 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> + <dependency> + <groupId>io.swagger.core.v3</groupId> + <artifactId>swagger-annotations-jakarta</artifactId> + <version>2.2.8</version> + <scope>compile</scope> + </dependency> </dependencies> </project> diff --git a/common_library/src/main/java/cz/muni/pa165/common_library/dtos/CarComponentDto.java b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/CarComponentDto.java new file mode 100644 index 0000000000000000000000000000000000000000..f34f23030a25f4e365386384f09ceddaa031a978 --- /dev/null +++ b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/CarComponentDto.java @@ -0,0 +1,41 @@ +package cz.muni.pa165.common_library.dtos; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import java.math.BigDecimal; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * Data Transfer object for CarComponent class. + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CarComponentDto { + + @NotNull + @Schema(description = "component id", example = "1") + Long id; + + @NotNull + @Schema(description = "component weight", example = "50") + BigDecimal weight; + + @NotNull + @Schema(description = "component price", example = "24000") + BigDecimal price; + + @NotNull + @Schema(description = "name of the manufacturer", example = "Michellin") + String manufacturer; + + @NotNull + @Schema(description = "component name", example = "Default engine") + String name; + +} + diff --git a/car/src/main/java/cz/muni/pa165/car/api/CarDto.java b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/CarDto.java similarity index 95% rename from car/src/main/java/cz/muni/pa165/car/api/CarDto.java rename to common_library/src/main/java/cz/muni/pa165/common_library/dtos/CarDto.java index 309a567eb2b49e45c758f3d3e1926f9e21025bb2..1b9ce2fa9cefca649e1f5a0afd32558746565503 100644 --- a/car/src/main/java/cz/muni/pa165/car/api/CarDto.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/CarDto.java @@ -1,4 +1,4 @@ -package cz.muni.pa165.car.api; +package cz.muni.pa165.common_library.dtos; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; diff --git a/driver/src/main/java/cz/muni/pa165/driver/api/DriverCarDto.java b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverCarDto.java similarity index 74% rename from driver/src/main/java/cz/muni/pa165/driver/api/DriverCarDto.java rename to common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverCarDto.java index 869575aa85973d46e2242e38cf7c38d20780e1a6..316990e28552613591636bd0de08d6ef453afa80 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/api/DriverCarDto.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverCarDto.java @@ -1,4 +1,4 @@ -package cz.muni.pa165.driver.api; +package cz.muni.pa165.common_library.dtos; /** * Dto for DriverCar response. diff --git a/car/src/main/java/cz/muni/pa165/car/api/DriverDto.java b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverDto.java similarity index 93% rename from car/src/main/java/cz/muni/pa165/car/api/DriverDto.java rename to common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverDto.java index 3c2a87281f20cc707418075f48f8642eebd39c89..c7d0036714270df6e41f6899e3a5fb4d5310e655 100644 --- a/car/src/main/java/cz/muni/pa165/car/api/DriverDto.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverDto.java @@ -1,4 +1,4 @@ -package cz.muni.pa165.car.api; +package cz.muni.pa165.common_library.dtos; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; diff --git a/driver/src/main/java/cz/muni/pa165/driver/api/DriverInsightDto.java b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverInsightDto.java similarity index 89% rename from driver/src/main/java/cz/muni/pa165/driver/api/DriverInsightDto.java rename to common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverInsightDto.java index bc5325e3b30ff4f8e2f1dde8ea6bcb5a1d40367c..3525965abc5ac72276039fd5cfa34fcfc6ad2c4b 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/api/DriverInsightDto.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverInsightDto.java @@ -1,4 +1,4 @@ -package cz.muni.pa165.driver.api; +package cz.muni.pa165.common_library.dtos; import java.util.Map; diff --git a/driver/src/main/java/cz/muni/pa165/driver/api/DriverResponseDto.java b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverResponseDto.java similarity index 65% rename from driver/src/main/java/cz/muni/pa165/driver/api/DriverResponseDto.java rename to common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverResponseDto.java index e7f27ccd099dfd74aa5b93a819412d3bf68eac22..e05bb898be587b8b8bc3a779d0f6e181af5940e2 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/api/DriverResponseDto.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverResponseDto.java @@ -1,4 +1,4 @@ -package cz.muni.pa165.driver.api; +package cz.muni.pa165.common_library.dtos; /** * Dto for driver response. diff --git a/driver/src/main/java/cz/muni/pa165/driver/api/DriverUpdateDto.java b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverUpdateDto.java similarity index 86% rename from driver/src/main/java/cz/muni/pa165/driver/api/DriverUpdateDto.java rename to common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverUpdateDto.java index f9025444d2ae4ceab59743c2e959522891204340..4c574b86cf50c8e7b7dc110c9690de3c7e32a89a 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/api/DriverUpdateDto.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/DriverUpdateDto.java @@ -1,4 +1,4 @@ -package cz.muni.pa165.driver.api; +package cz.muni.pa165.common_library.dtos; import java.util.Map; diff --git a/race/src/main/java/cz/muni/pa165/race/api/DriverCarDto.java b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/RaceDriverCarDto.java similarity index 87% rename from race/src/main/java/cz/muni/pa165/race/api/DriverCarDto.java rename to common_library/src/main/java/cz/muni/pa165/common_library/dtos/RaceDriverCarDto.java index 9b3226ca764768c6ac7171e3c3af078cf0088f02..a950fc9846908df7655d8e9d907bcc5b430eb793 100644 --- a/race/src/main/java/cz/muni/pa165/race/api/DriverCarDto.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/RaceDriverCarDto.java @@ -1,4 +1,4 @@ -package cz.muni.pa165.race.api; +package cz.muni.pa165.common_library.dtos; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; @@ -10,7 +10,7 @@ import lombok.Data; */ @Data @Builder -public class DriverCarDto { +public class RaceDriverCarDto { @NotNull @Schema(description = "driver id", example = "1") diff --git a/race/src/main/java/cz/muni/pa165/race/api/RaceDto.java b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/RaceDto.java similarity index 88% rename from race/src/main/java/cz/muni/pa165/race/api/RaceDto.java rename to common_library/src/main/java/cz/muni/pa165/common_library/dtos/RaceDto.java index 9651991554743f8b911a272f9bab07675b499357..b56ebfb297430cb017e879a3d4cc60543ec2d7cc 100644 --- a/race/src/main/java/cz/muni/pa165/race/api/RaceDto.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/RaceDto.java @@ -1,4 +1,4 @@ -package cz.muni.pa165.race.api; +package cz.muni.pa165.common_library.dtos; import cz.muni.pa165.common_library.racecomponents.Location; import cz.muni.pa165.common_library.racecomponents.Race; @@ -26,11 +26,14 @@ public class RaceDto { private RaceDto.RaceInfo raceInfo; @Schema(description = "driver one", example = "{1, 1, Charles Leclerc}") - private DriverCarDto driverOne; + private RaceDriverCarDto driverOne; @Schema(description = "driver two", example = "{2, 2, Carlos Sainz}") - private DriverCarDto driverTwo; + private RaceDriverCarDto driverTwo; + /** + * Race information. + */ @Data @Builder @AllArgsConstructor diff --git a/race/src/main/java/cz/muni/pa165/race/api/RaceNameDto.java b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/RaceNameDto.java similarity index 93% rename from race/src/main/java/cz/muni/pa165/race/api/RaceNameDto.java rename to common_library/src/main/java/cz/muni/pa165/common_library/dtos/RaceNameDto.java index 71c6c9d390ced6db7e227062857cd498dde25b5f..31e71ad9f85ea242a71d485708e7eb640ff43bb8 100644 --- a/race/src/main/java/cz/muni/pa165/race/api/RaceNameDto.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/RaceNameDto.java @@ -1,4 +1,4 @@ -package cz.muni.pa165.race.api; +package cz.muni.pa165.common_library.dtos; import cz.muni.pa165.common_library.racecomponents.Location; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/race/src/main/java/cz/muni/pa165/race/api/SeasonDto.java b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/SeasonDto.java similarity index 94% rename from race/src/main/java/cz/muni/pa165/race/api/SeasonDto.java rename to common_library/src/main/java/cz/muni/pa165/common_library/dtos/SeasonDto.java index 8da65bb67a7a22abc1700a0ec698c462bc45c94d..f5ea5df1445b44fcf57d58797ed53e38933889d5 100644 --- a/race/src/main/java/cz/muni/pa165/race/api/SeasonDto.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/SeasonDto.java @@ -1,4 +1,4 @@ -package cz.muni.pa165.race.api; +package cz.muni.pa165.common_library.dtos; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.Max; diff --git a/common_library/src/main/java/cz/muni/pa165/common_library/racecomponents/CarComponent.java b/common_library/src/main/java/cz/muni/pa165/common_library/racecomponents/CarComponent.java index 64c3f9380618ed66937739000a66c3fc4874f4f3..aaf710468513b1a8b84cb711d0ff8ace99243baa 100644 --- a/common_library/src/main/java/cz/muni/pa165/common_library/racecomponents/CarComponent.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/racecomponents/CarComponent.java @@ -1,10 +1,12 @@ package cz.muni.pa165.common_library.racecomponents; - import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; import jakarta.validation.constraints.NotNull; +import java.io.Serializable; import java.math.BigDecimal; import lombok.AllArgsConstructor; import lombok.Builder; @@ -20,9 +22,10 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @Entity @Table(name = "carcomponent") -public class CarComponent { +public class CarComponent implements Serializable { @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @NotNull diff --git a/common_library/src/main/java/cz/muni/pa165/common_library/racecomponents/Race.java b/common_library/src/main/java/cz/muni/pa165/common_library/racecomponents/Race.java index 967905b15b7b85de3f8bd352fed5f0d42d956925..b0fd1569706d574cb861497f02561a614c0baf78 100644 --- a/common_library/src/main/java/cz/muni/pa165/common_library/racecomponents/Race.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/racecomponents/Race.java @@ -40,18 +40,21 @@ public class Race implements Serializable { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @OneToOne(cascade= CascadeType.ALL) + @OneToOne(cascade = CascadeType.ALL) @JoinColumn(name = "race_info_id") private RaceInfo raceInfo; - @OneToOne(cascade= CascadeType.ALL) + @OneToOne(cascade = CascadeType.ALL) @JoinColumn(name = "driver_info_one_id") private RaceDriverinfo driver1; - @OneToOne(cascade= CascadeType.ALL) + @OneToOne(cascade = CascadeType.ALL) @JoinColumn(name = "driver_info_two_id") private RaceDriverinfo driver2; + /** + * Information about race driver. + */ @Entity @Table(name = "racedriverinfo") @Data @@ -77,6 +80,9 @@ public class Race implements Serializable { private int finalPosition; } + /** + * Information about race. + */ @Entity @Table(name = "raceinfo") @Data diff --git a/common_library/src/main/resources.mv.db b/common_library/src/main/resources.mv.db index 9b1b72eccb39842839946971a1bea703e1e1f73b..2d0ad96b2093300a24f932e16ea0a59b9c26972f 100644 Binary files a/common_library/src/main/resources.mv.db and b/common_library/src/main/resources.mv.db differ diff --git a/component/pom.xml b/component/pom.xml index 94a7eaa7b264d4421529645ec63deb6a28251d25..9b25686fc78bd88a2147b3846ac79b44e0d96839 100644 --- a/component/pom.xml +++ b/component/pom.xml @@ -21,6 +21,17 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>1.18.24</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <version>2.1.214</version> + </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> @@ -32,6 +43,11 @@ <version>0.0.1-SNAPSHOT</version> <scope>compile</scope> </dependency> + <dependency> + <groupId>org.springframework.data</groupId> + <artifactId>spring-data-jpa</artifactId> + <version>3.0.2</version> + </dependency> </dependencies> <properties> <maven.compiler.source>17</maven.compiler.source> diff --git a/component/src/main/java/cz/muni/pa165/component/App.java b/component/src/main/java/cz/muni/pa165/component/App.java index 5f87d5b00817dc414a5ea4ed837d8894e72366ea..3ead9f59388d632420db1164711e386a4beb02b2 100644 --- a/component/src/main/java/cz/muni/pa165/component/App.java +++ b/component/src/main/java/cz/muni/pa165/component/App.java @@ -2,11 +2,15 @@ package cz.muni.pa165.component; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; /** * Main app. */ -@SpringBootApplication +@SpringBootApplication(scanBasePackages = {"cz.muni.pa165.*"}) +@EnableJpaRepositories(basePackages = {"cz.muni.pa165.*"}) +@EntityScan("cz.muni.pa165.*") public class App { public static void main(String[] args) { diff --git a/component/src/main/java/cz/muni/pa165/component/data/repository/ComponentRepository.java b/component/src/main/java/cz/muni/pa165/component/data/repository/ComponentRepository.java deleted file mode 100644 index 11fce9b8a3234e184461b287ab06ba399cb5649a..0000000000000000000000000000000000000000 --- a/component/src/main/java/cz/muni/pa165/component/data/repository/ComponentRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package cz.muni.pa165.component.data.repository; - -import org.springframework.stereotype.Repository; - -/** - * Repo. - */ -@Repository -public class ComponentRepository { - // TODO CRUD operacie na generickej komponente -} diff --git a/component/src/main/java/cz/muni/pa165/component/data/repository/ComponentRepositoryInterface.java b/component/src/main/java/cz/muni/pa165/component/data/repository/ComponentRepositoryInterface.java new file mode 100644 index 0000000000000000000000000000000000000000..040eec62a5d0b3abc8fc2738e0a63a8fdd38fad9 --- /dev/null +++ b/component/src/main/java/cz/muni/pa165/component/data/repository/ComponentRepositoryInterface.java @@ -0,0 +1,12 @@ +package cz.muni.pa165.component.data.repository; + +import cz.muni.pa165.common_library.racecomponents.CarComponent; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +/** + * Repository of the car components. + */ +@Repository +public interface ComponentRepositoryInterface extends JpaRepository<CarComponent, Long> { +} diff --git a/component/src/main/java/cz/muni/pa165/component/facade/ComponentInitFacade.java b/component/src/main/java/cz/muni/pa165/component/facade/ComponentInitFacade.java deleted file mode 100644 index fe6d29ed18a3a211f1f954d25ccaa5c02026c943..0000000000000000000000000000000000000000 --- a/component/src/main/java/cz/muni/pa165/component/facade/ComponentInitFacade.java +++ /dev/null @@ -1,18 +0,0 @@ -package cz.muni.pa165.component.facade; - -import cz.muni.pa165.component.service.ComponentInitService; -import org.springframework.stereotype.Service; - -/** - * Facade for components initialization. - */ -@Service -public class ComponentInitFacade { - - ComponentInitService componentService; - - ComponentInitFacade(ComponentInitService componentService) { - this.componentService = componentService; - } - -} diff --git a/component/src/main/java/cz/muni/pa165/component/rest/ComponentController.java b/component/src/main/java/cz/muni/pa165/component/rest/ComponentController.java new file mode 100644 index 0000000000000000000000000000000000000000..d4d15522bb67540e27ac43cfbff78cffff2c34d6 --- /dev/null +++ b/component/src/main/java/cz/muni/pa165/component/rest/ComponentController.java @@ -0,0 +1,61 @@ +package cz.muni.pa165.component.rest; + +import cz.muni.pa165.common_library.dtos.CarComponentDto; +import cz.muni.pa165.component.service.ComponentServiceInterface; +import io.swagger.v3.oas.annotations.Operation; +import jakarta.validation.Valid; +import java.util.List; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * Controller for managing the components. + */ +@RestController +@RequestMapping(path = "/component") +@Validated +public class ComponentController { + + ComponentServiceInterface componentService; + + ComponentController(ComponentServiceInterface componentFacade) { + this.componentService = componentFacade; + } + + @Operation(summary = "Create new component") + @PostMapping(path = "/", consumes = MediaType.APPLICATION_JSON_VALUE, + produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity<CarComponentDto> createComponent( + @Valid @RequestBody CarComponentDto carComponent) { + return ResponseEntity.ok(componentService.postCarComponent(carComponent)); + } + + @Operation(summary = "Delete a car component") + @DeleteMapping(path = "/", + produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity<String> deleteComponent(@Valid @RequestParam long componentId) { + return ResponseEntity.ok(componentService.deleteById(componentId)); + } + + @Operation(summary = "Get a car component") + @GetMapping(path = "/id", + produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity<CarComponentDto> getComponent(@Valid @RequestParam long componentId) { + return ResponseEntity.ok(componentService.getCarComponentById(componentId)); + } + + @Operation(summary = "Get all car components") + @GetMapping(path = "/", + produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity<List<CarComponentDto>> getComponents() { + return ResponseEntity.ok(componentService.getAllCarComponents()); + } +} diff --git a/component/src/main/java/cz/muni/pa165/component/rest/ComponentInitController.java b/component/src/main/java/cz/muni/pa165/component/rest/ComponentInitController.java deleted file mode 100644 index 48d779fb71f63914d4601bf64726e910f66a5c15..0000000000000000000000000000000000000000 --- a/component/src/main/java/cz/muni/pa165/component/rest/ComponentInitController.java +++ /dev/null @@ -1,21 +0,0 @@ -package cz.muni.pa165.component.rest; - -import cz.muni.pa165.component.facade.ComponentInitFacade; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * Controller for initializing the components. - */ -@RestController -@RequestMapping(path = "/component") -@Validated -public class ComponentInitController { - - ComponentInitFacade componentInitFacade; - - ComponentInitController(ComponentInitFacade componentInitFacade) { - this.componentInitFacade = componentInitFacade; - } -} diff --git a/component/src/main/java/cz/muni/pa165/component/service/ComponentInitService.java b/component/src/main/java/cz/muni/pa165/component/service/ComponentInitService.java deleted file mode 100644 index 95122c403ec350dc10190f54099d3a180d377667..0000000000000000000000000000000000000000 --- a/component/src/main/java/cz/muni/pa165/component/service/ComponentInitService.java +++ /dev/null @@ -1,17 +0,0 @@ -package cz.muni.pa165.component.service; - -import cz.muni.pa165.component.data.repository.ComponentRepository; -import org.springframework.stereotype.Service; - -/** - * Service for component initialization. - */ -@Service -public class ComponentInitService { - - ComponentRepository componentRepository; - - ComponentInitService(ComponentRepository componentRepository) { - this.componentRepository = componentRepository; - } -} diff --git a/component/src/main/java/cz/muni/pa165/component/service/ComponentService.java b/component/src/main/java/cz/muni/pa165/component/service/ComponentService.java new file mode 100644 index 0000000000000000000000000000000000000000..e311073a79507a5f2919670a721b4a926be7b114 --- /dev/null +++ b/component/src/main/java/cz/muni/pa165/component/service/ComponentService.java @@ -0,0 +1,83 @@ +package cz.muni.pa165.component.service; + +import cz.muni.pa165.common_library.dtos.CarComponentDto; +import cz.muni.pa165.common_library.exception.DatabaseException; +import cz.muni.pa165.common_library.racecomponents.CarComponent; +import cz.muni.pa165.component.data.repository.ComponentRepositoryInterface; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + +/** + * Service for component initialization. + */ +@Service +public class ComponentService implements ComponentServiceInterface { + + @Autowired + ComponentRepositoryInterface componentRepository; + + ComponentService(ComponentRepositoryInterface componentRepository) { + this.componentRepository = componentRepository; + } + + public CarComponentDto postCarComponent(CarComponentDto carComponentDto) { + return carComponentConverter(componentRepository.save( + carComponentDtoConverter(carComponentDto))); + } + + /** + * Finds and returns car component by id. + * + * @param carComponentId id of the component. + * @return found car component. + */ + public CarComponentDto getCarComponentById(Long carComponentId) { + return carComponentConverter(componentRepository.findById(carComponentId).orElseThrow( + () -> new DatabaseException("Something went wrong when finding car component with id: " + + carComponentId + " in the database."))); + } + + /** + * Get all the car components in the repository. + * + * @return list of stored car components. + */ + public List<CarComponentDto> getAllCarComponents() { + return componentRepository.findAll() + .stream() + .map(this::carComponentConverter) + .toList(); + } + + /** + * Removes car component from repository based on the id. + * + * @param carComponentId of the car component for removal. + */ + public String deleteById(Long carComponentId) { + componentRepository.deleteById(carComponentId); + return "Car component with id: " + carComponentId + "was successfully deleted"; + } + + CarComponent carComponentDtoConverter(CarComponentDto carComponentDto) { + return CarComponent.builder() + .id(carComponentDto.getId()) + .weight(carComponentDto.getWeight()) + .price(carComponentDto.getPrice()) + .manufacturer(carComponentDto.getManufacturer()) + .name(carComponentDto.getName()) + .build(); + } + + CarComponentDto carComponentConverter(CarComponent carComponent) { + return CarComponentDto.builder() + .id(carComponent.getId()) + .weight(carComponent.getWeight()) + .price(carComponent.getPrice()) + .manufacturer(carComponent.getManufacturer()) + .name(carComponent.getName()) + .build(); + } +} diff --git a/component/src/main/java/cz/muni/pa165/component/service/ComponentServiceInterface.java b/component/src/main/java/cz/muni/pa165/component/service/ComponentServiceInterface.java new file mode 100644 index 0000000000000000000000000000000000000000..4ce60cfef740497e72bff9a7b9025491c74d45c5 --- /dev/null +++ b/component/src/main/java/cz/muni/pa165/component/service/ComponentServiceInterface.java @@ -0,0 +1,20 @@ +package cz.muni.pa165.component.service; + +import cz.muni.pa165.common_library.dtos.CarComponentDto; +import java.util.List; + + +/** + * Interface for the car component service. + */ +public interface ComponentServiceInterface { + + public CarComponentDto postCarComponent(CarComponentDto carComponentDto); + + public CarComponentDto getCarComponentById(Long carComponentId); + + public List<CarComponentDto> getAllCarComponents(); + + public String deleteById(Long carComponentId); + +} diff --git a/component/src/main/resources/META-INF/persistance.xml b/component/src/main/resources/META-INF/persistance.xml new file mode 100644 index 0000000000000000000000000000000000000000..cfacab1d8187632144e7a694b873ab82e894548b --- /dev/null +++ b/component/src/main/resources/META-INF/persistance.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence https://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> + + <persistence-unit name="jpa.sample.plain" transaction-type="RESOURCE_LOCAL"> + <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> + <class>cz.muni.pa165.common_library.racecomponents.CarComponent</class> + <properties> + <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" /> + <property name="hibernate.connection.url" value="jdbc:hsqldb:mem:spring" /> + <property name="hibernate.connection.driver_class" value="org.h2.Driver" /> + <property name="hibernate.hbm2ddl.auto" value="create-drop" /> + </properties> + </persistence-unit> + +</persistence> \ No newline at end of file diff --git a/component/src/main/resources/application.yml b/component/src/main/resources/application.yml index 3aa99d6dfb4bddba9368fbf5b1f92fd4cfbc7e79..ed9929935fee1ee9e6f64e8370f5f83107a3ce10 100644 --- a/component/src/main/resources/application.yml +++ b/component/src/main/resources/application.yml @@ -5,6 +5,16 @@ server: springdoc: api-docs: - path: /openapi + path: /componentApi swagger-ui: - path: /swagger-ui.html \ No newline at end of file + path: /swagger-ui.html + +spring: + jpa: + open-in-view: false + database-platform: org.hibernate.dialect.H2Dialect + datasource: + url: jdbc:h2:mem:race;MODE=PostgreSQL + driverClassName: org.h2.Driver + username: admin + password: admin \ No newline at end of file diff --git a/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerItTest.java b/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerItTest.java index 65fe7a4f3a0faa5f9985016bd5176fe2e8d9a561..3c9619a4f578deb24a97e86d847c650c0938ea3a 100644 --- a/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerItTest.java +++ b/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerItTest.java @@ -1,7 +1,7 @@ package cz.muni.pa165.component.rest; import com.fasterxml.jackson.databind.ObjectMapper; -import cz.muni.pa165.component.service.ComponentInitService; +import cz.muni.pa165.component.service.ComponentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; @@ -19,7 +19,7 @@ class ComponentInitControllerItTest { private ObjectMapper objectMapper; @Autowired - ComponentInitService componentInitService; + ComponentService componentInitService; } diff --git a/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerUnitTest.java b/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerUnitTest.java index 0f4d36bd6752d273c2b0d8f01cffcc53b44eccd1..4586f73d2bd56cdd90c541c576fb05ec4de034e0 100644 --- a/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerUnitTest.java +++ b/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerUnitTest.java @@ -1,22 +1,18 @@ package cz.muni.pa165.component.rest; import com.fasterxml.jackson.databind.ObjectMapper; -import cz.muni.pa165.component.facade.ComponentInitFacade; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; -import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.test.web.servlet.MockMvc; -@WebMvcTest(ComponentInitController.class) +@WebMvcTest(ComponentController.class) class ComponentInitControllerUnitTest { @Autowired private MockMvc mockMvc; - @MockBean - private ComponentInitFacade mockComponentInitFacade; + //@MockBean + //private ComponentInitFacade mockComponentInitFacade; @Autowired private ObjectMapper objectMapper; diff --git a/driver/pom.xml b/driver/pom.xml index c7efb5a8f4b2790287ea35bf26a6d747b5df74d6..73c6c6d3325e0e14af76f1d143ed003da5437ae0 100644 --- a/driver/pom.xml +++ b/driver/pom.xml @@ -20,11 +20,6 @@ <artifactId>h2</artifactId> <version>2.1.214</version> </dependency> - <dependency> - <groupId>org.json</groupId> - <artifactId>json</artifactId> - <version>20210307</version> - </dependency> <dependency> <groupId>jakarta.validation</groupId> <artifactId>jakarta.validation-api</artifactId> diff --git a/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverCarMapper.java b/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverCarMapper.java index 2362d54974c2a05bd728c93d43c8e5c57a6fe69d..d05c75964502a714cfba9198757e6f2bdd6aeaaf 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverCarMapper.java +++ b/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverCarMapper.java @@ -1,8 +1,8 @@ package cz.muni.pa165.driver.mapper; +import cz.muni.pa165.common_library.dtos.DriverCarDto; import cz.muni.pa165.common_library.racecomponents.Car; import cz.muni.pa165.common_library.racecomponents.Driver; -import cz.muni.pa165.driver.api.DriverCarDto; /** * Interface of driver car mapper. diff --git a/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverCarMapperImpl.java b/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverCarMapperImpl.java index 0f9b3eb93df605f54aa21941745f326748d3d762..77cd236bdb84cd316c068a35a0f4cf9470aa38c4 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverCarMapperImpl.java +++ b/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverCarMapperImpl.java @@ -1,8 +1,8 @@ package cz.muni.pa165.driver.mapper; +import cz.muni.pa165.common_library.dtos.DriverCarDto; import cz.muni.pa165.common_library.racecomponents.Car; import cz.muni.pa165.common_library.racecomponents.Driver; -import cz.muni.pa165.driver.api.DriverCarDto; import org.springframework.stereotype.Component; /** diff --git a/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverMapper.java b/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverMapper.java index 67215558816b0c752a760af2937e653270e428c7..b503b6f24d622452608e90d6f2b14d39df1cc216 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverMapper.java +++ b/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverMapper.java @@ -1,9 +1,9 @@ package cz.muni.pa165.driver.mapper; +import cz.muni.pa165.common_library.dtos.DriverInsightDto; +import cz.muni.pa165.common_library.dtos.DriverResponseDto; +import cz.muni.pa165.common_library.dtos.DriverUpdateDto; import cz.muni.pa165.common_library.racecomponents.Driver; -import cz.muni.pa165.driver.api.DriverInsightDto; -import cz.muni.pa165.driver.api.DriverResponseDto; -import cz.muni.pa165.driver.api.DriverUpdateDto; /** * Interface for driver mapper. diff --git a/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverMapperImpl.java b/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverMapperImpl.java index cb9b0430511b2b4d4e6c792fac1bd77724c27eeb..a8d983899092be0c2275241de6bcbe65e3496e7f 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverMapperImpl.java +++ b/driver/src/main/java/cz/muni/pa165/driver/mapper/DriverMapperImpl.java @@ -1,9 +1,9 @@ package cz.muni.pa165.driver.mapper; +import cz.muni.pa165.common_library.dtos.DriverInsightDto; +import cz.muni.pa165.common_library.dtos.DriverResponseDto; +import cz.muni.pa165.common_library.dtos.DriverUpdateDto; import cz.muni.pa165.common_library.racecomponents.Driver; -import cz.muni.pa165.driver.api.DriverInsightDto; -import cz.muni.pa165.driver.api.DriverResponseDto; -import cz.muni.pa165.driver.api.DriverUpdateDto; import org.springframework.stereotype.Component; /** diff --git a/driver/src/main/java/cz/muni/pa165/driver/rest/DriverController.java b/driver/src/main/java/cz/muni/pa165/driver/rest/DriverController.java index 56b842dd20cdd7c2cbbfec1249c2176d0139a6db..b9608e0285968ec6bf97fa9bd94dee9ffe3835ca 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/rest/DriverController.java +++ b/driver/src/main/java/cz/muni/pa165/driver/rest/DriverController.java @@ -1,9 +1,9 @@ package cz.muni.pa165.driver.rest; -import cz.muni.pa165.driver.api.DriverCarDto; -import cz.muni.pa165.driver.api.DriverInsightDto; -import cz.muni.pa165.driver.api.DriverResponseDto; -import cz.muni.pa165.driver.api.DriverUpdateDto; +import cz.muni.pa165.common_library.dtos.DriverCarDto; +import cz.muni.pa165.common_library.dtos.DriverInsightDto; +import cz.muni.pa165.common_library.dtos.DriverResponseDto; +import cz.muni.pa165.common_library.dtos.DriverUpdateDto; import cz.muni.pa165.driver.service.CarService; import cz.muni.pa165.driver.service.DriverService; import io.swagger.v3.oas.annotations.Operation; diff --git a/driver/src/main/java/cz/muni/pa165/driver/service/CarService.java b/driver/src/main/java/cz/muni/pa165/driver/service/CarService.java index 8c2260c28ba8f5ad8fd5d0df1967f2194e72d520..95698d97cb9cb8bec3cab840575bff4176e3cd70 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/service/CarService.java +++ b/driver/src/main/java/cz/muni/pa165/driver/service/CarService.java @@ -1,6 +1,6 @@ package cz.muni.pa165.driver.service; -import cz.muni.pa165.driver.api.DriverCarDto; +import cz.muni.pa165.common_library.dtos.DriverCarDto; /** * Car service interface. diff --git a/driver/src/main/java/cz/muni/pa165/driver/service/CarServiceImpl.java b/driver/src/main/java/cz/muni/pa165/driver/service/CarServiceImpl.java index 46cda2b7372c5c16af002c13a36f897a6d403ff9..e9b17968fe46ae81af90466841d7e76fad956720 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/service/CarServiceImpl.java +++ b/driver/src/main/java/cz/muni/pa165/driver/service/CarServiceImpl.java @@ -1,7 +1,7 @@ package cz.muni.pa165.driver.service; +import cz.muni.pa165.common_library.dtos.DriverCarDto; import cz.muni.pa165.common_library.exception.ResourceNotFoundException; -import cz.muni.pa165.driver.api.DriverCarDto; import cz.muni.pa165.driver.data.repository.CarRepository; import cz.muni.pa165.driver.data.repository.DriverRepository; import cz.muni.pa165.driver.mapper.DriverCarMapper; diff --git a/driver/src/main/java/cz/muni/pa165/driver/service/DriverService.java b/driver/src/main/java/cz/muni/pa165/driver/service/DriverService.java index 3f31ded7748ec533f54822326866d93b594358ba..90aea4b74da248a7c73fb6121bdc19ed1dd1f34b 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/service/DriverService.java +++ b/driver/src/main/java/cz/muni/pa165/driver/service/DriverService.java @@ -1,8 +1,8 @@ package cz.muni.pa165.driver.service; -import cz.muni.pa165.driver.api.DriverInsightDto; -import cz.muni.pa165.driver.api.DriverResponseDto; -import cz.muni.pa165.driver.api.DriverUpdateDto; +import cz.muni.pa165.common_library.dtos.DriverInsightDto; +import cz.muni.pa165.common_library.dtos.DriverResponseDto; +import cz.muni.pa165.common_library.dtos.DriverUpdateDto; import java.util.List; /** diff --git a/driver/src/main/java/cz/muni/pa165/driver/service/DriverServiceImpl.java b/driver/src/main/java/cz/muni/pa165/driver/service/DriverServiceImpl.java index d6c375760589e0c7ebf85f488cd5cfa0ff0ff1ec..d5d3a153a0b5e328bafb6ecff4875e8d7eaddf8d 100644 --- a/driver/src/main/java/cz/muni/pa165/driver/service/DriverServiceImpl.java +++ b/driver/src/main/java/cz/muni/pa165/driver/service/DriverServiceImpl.java @@ -1,9 +1,9 @@ package cz.muni.pa165.driver.service; +import cz.muni.pa165.common_library.dtos.DriverInsightDto; +import cz.muni.pa165.common_library.dtos.DriverResponseDto; +import cz.muni.pa165.common_library.dtos.DriverUpdateDto; import cz.muni.pa165.common_library.exception.ResourceNotFoundException; -import cz.muni.pa165.driver.api.DriverInsightDto; -import cz.muni.pa165.driver.api.DriverResponseDto; -import cz.muni.pa165.driver.api.DriverUpdateDto; import cz.muni.pa165.driver.data.repository.DriverRepository; import cz.muni.pa165.driver.mapper.DriverMapper; import java.util.List; diff --git a/race/src/main/java/cz/muni/pa165/race/data/repository/RaceRepository.java b/race/src/main/java/cz/muni/pa165/race/data/repository/RaceRepository.java index 20681f4fb93e9e35a03931066f0e952496202b5d..cc5689af7a03444cbf25101a1c86251cf6b73e18 100644 --- a/race/src/main/java/cz/muni/pa165/race/data/repository/RaceRepository.java +++ b/race/src/main/java/cz/muni/pa165/race/data/repository/RaceRepository.java @@ -14,11 +14,11 @@ import org.springframework.stereotype.Repository; @Repository public interface RaceRepository extends JpaRepository<Race, Long> { - @Query("SELECT r FROM Race r" + - " JOIN r.raceInfo ri " + - " JOIN r.driver1 do " + - " JOIN r.driver2 dt " + - "WHERE ri.location = :location AND (do.id = :driverId OR dt.id = :driverId)") + @Query("SELECT r FROM Race r" + + " JOIN r.raceInfo ri " + + " JOIN r.driver1 do " + + " JOIN r.driver2 dt " + + "WHERE ri.location = :location AND (do.id = :driverId OR dt.id = :driverId)") List<Race> findAllRacesOfDriverInLocation(@Param("location") Location raceLocation, @Param("driverId") long driverId); } 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 05a9e34a024d4119a92cfd345919022df74af1a2..24ce9dd85f436d57519406d49c03ef366d6e422a 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 @@ -1,7 +1,7 @@ package cz.muni.pa165.race.rest; -import cz.muni.pa165.race.api.RaceDto; +import cz.muni.pa165.common_library.dtos.RaceDto; import cz.muni.pa165.race.service.RaceService; import io.swagger.v3.oas.annotations.Operation; import jakarta.validation.Valid; diff --git a/race/src/main/java/cz/muni/pa165/race/rest/SeasonController.java b/race/src/main/java/cz/muni/pa165/race/rest/SeasonController.java index bdfd5e080e0175889053da83b29f54ba188c5348..b3ced6adf195628df009699e0e7459d7358c65ea 100644 --- a/race/src/main/java/cz/muni/pa165/race/rest/SeasonController.java +++ b/race/src/main/java/cz/muni/pa165/race/rest/SeasonController.java @@ -1,7 +1,6 @@ package cz.muni.pa165.race.rest; -import cz.muni.pa165.common_library.racecomponents.Season; -import cz.muni.pa165.race.api.SeasonDto; +import cz.muni.pa165.common_library.dtos.SeasonDto; import cz.muni.pa165.race.service.SeasonServiceInterface; import io.swagger.v3.oas.annotations.Operation; import jakarta.validation.Valid; 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 c78471159b1909b3da171d034b21875ae10aaf43..85043c484b5a4fe51274825a9527522a5a6afcf3 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 @@ -1,11 +1,11 @@ package cz.muni.pa165.race.service; +import cz.muni.pa165.common_library.dtos.RaceDriverCarDto; +import cz.muni.pa165.common_library.dtos.RaceDto; import cz.muni.pa165.common_library.exception.DatabaseException; import cz.muni.pa165.common_library.racecomponents.Car; import cz.muni.pa165.common_library.racecomponents.Driver; import cz.muni.pa165.common_library.racecomponents.Race; -import cz.muni.pa165.race.api.DriverCarDto; -import cz.muni.pa165.race.api.RaceDto; import cz.muni.pa165.race.data.repository.CarRepository; import cz.muni.pa165.race.data.repository.DriverRepository; import cz.muni.pa165.race.data.repository.RaceRepository; @@ -143,7 +143,7 @@ public class RaceService { .build()) .build(); if (race.getDriver1() != null && race.getDriver1().getCar() != null) { - raceDto.setDriverOne(DriverCarDto.builder() + raceDto.setDriverOne(RaceDriverCarDto.builder() .carId(race.getDriver1().getCar().getId()) .driverId(race.getDriver1().getId()) .driverName(race.getDriver1().getDriver().getName() @@ -151,7 +151,7 @@ public class RaceService { .build()); } if (race.getDriver2() != null && race.getDriver2().getCar() != null) { - raceDto.setDriverTwo(DriverCarDto.builder() + raceDto.setDriverTwo(RaceDriverCarDto.builder() .carId(race.getDriver2().getCar().getId()) .driverId(race.getDriver2().getId()) .driverName(race.getDriver2().getDriver().getName() @@ -162,13 +162,13 @@ public class RaceService { } - private Driver getDriver(DriverCarDto driverCarDto) { + private Driver getDriver(RaceDriverCarDto driverCarDto) { return driverRepository.findById(driverCarDto.getDriverId()).orElseThrow( () -> new DatabaseException("Something went wrong when" + "finding the driver with id: " + driverCarDto.getDriverId() + " in the database.")); } - private Car getCar(DriverCarDto driverCarDto) { + private Car getCar(RaceDriverCarDto driverCarDto) { return carRepository.findById(driverCarDto.getCarId()).orElseThrow( () -> new DatabaseException("Something went wrong when" + "finding the car with id: " + driverCarDto.getCarId() + " in the database.")); diff --git a/race/src/main/java/cz/muni/pa165/race/service/SeasonService.java b/race/src/main/java/cz/muni/pa165/race/service/SeasonService.java index c0e762c41152cafea73358affb4823670e71afd8..06d43d76fb4ab289699aa3fd30747ecfab2d1e24 100644 --- a/race/src/main/java/cz/muni/pa165/race/service/SeasonService.java +++ b/race/src/main/java/cz/muni/pa165/race/service/SeasonService.java @@ -1,10 +1,10 @@ package cz.muni.pa165.race.service; +import cz.muni.pa165.common_library.dtos.RaceNameDto; +import cz.muni.pa165.common_library.dtos.SeasonDto; import cz.muni.pa165.common_library.exception.DatabaseException; import cz.muni.pa165.common_library.racecomponents.Race; import cz.muni.pa165.common_library.racecomponents.Season; -import cz.muni.pa165.race.api.RaceNameDto; -import cz.muni.pa165.race.api.SeasonDto; import cz.muni.pa165.race.data.repository.RaceRepository; import cz.muni.pa165.race.data.repository.SeasonRepository; import java.util.List; diff --git a/race/src/main/java/cz/muni/pa165/race/service/SeasonServiceInterface.java b/race/src/main/java/cz/muni/pa165/race/service/SeasonServiceInterface.java index 14e63aa012b7397cffd67ad084a3db6043b5bf61..80da12d7a9743d1a060d9e1a1ea92d1514c14eff 100644 --- a/race/src/main/java/cz/muni/pa165/race/service/SeasonServiceInterface.java +++ b/race/src/main/java/cz/muni/pa165/race/service/SeasonServiceInterface.java @@ -1,6 +1,6 @@ package cz.muni.pa165.race.service; -import cz.muni.pa165.race.api.SeasonDto; +import cz.muni.pa165.common_library.dtos.SeasonDto; import java.util.List; /**