From da336314ed9e2720f644424fe92bfe42005a8dfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diana=20Gul=C4=8D=C3=ADkov=C3=A1?= <xgulcik@fi.muni.cz> Date: Sat, 18 Mar 2023 21:18:34 +0100 Subject: [PATCH] small changes --- car_manager/pom.xml | 5 +++++ .../java/cz/muni/pa165/carmanager/Config.java | 17 ++++++++++++++ .../data/repository/ConfigRepository.java | 7 ++++-- .../carmanager/facade/CarManagerFacade.java | 3 +++ .../carmanager/rest/CarManagerController.java | 5 +++++ .../carmanager/service/CarManagerService.java | 18 ++++++++++++++- .../carmanager/service/DatabaseException.java | 3 +++ .../service/ResourceNotFoundException.java | 22 +++++-------------- .../racecomponents/carcomponents/Engine.java | 6 ++++- 9 files changed, 66 insertions(+), 20 deletions(-) create mode 100644 car_manager/src/main/java/cz/muni/pa165/carmanager/Config.java diff --git a/car_manager/pom.xml b/car_manager/pom.xml index 40f23016..f1020ab1 100644 --- a/car_manager/pom.xml +++ b/car_manager/pom.xml @@ -31,6 +31,11 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + <version>2.13.3</version> + </dependency> </dependencies> <properties> <maven.compiler.source>17</maven.compiler.source> diff --git a/car_manager/src/main/java/cz/muni/pa165/carmanager/Config.java b/car_manager/src/main/java/cz/muni/pa165/carmanager/Config.java new file mode 100644 index 00000000..2fb05134 --- /dev/null +++ b/car_manager/src/main/java/cz/muni/pa165/carmanager/Config.java @@ -0,0 +1,17 @@ +package cz.muni.pa165.carmanager; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * App configuration. + */ +@Configuration +public class Config { + + @Bean + public ObjectMapper objectMapper() { + return new ObjectMapper(); + } +} diff --git a/car_manager/src/main/java/cz/muni/pa165/carmanager/data/repository/ConfigRepository.java b/car_manager/src/main/java/cz/muni/pa165/carmanager/data/repository/ConfigRepository.java index 66121aed..2af4531b 100644 --- a/car_manager/src/main/java/cz/muni/pa165/carmanager/data/repository/ConfigRepository.java +++ b/car_manager/src/main/java/cz/muni/pa165/carmanager/data/repository/ConfigRepository.java @@ -5,17 +5,20 @@ import java.util.Optional; import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; +/** + * Repository for data retrieval. + */ @Repository public class ConfigRepository { // TODO doplnit v dalsom milestone @Query("") public Optional<Config> updateConfig(Config config) { - return null; + return Optional.of(config); } @Query("") public Optional<Config> createConfig(Config config) { - return null; + return Optional.of(config); } } diff --git a/car_manager/src/main/java/cz/muni/pa165/carmanager/facade/CarManagerFacade.java b/car_manager/src/main/java/cz/muni/pa165/carmanager/facade/CarManagerFacade.java index f7e99b84..40f12eef 100644 --- a/car_manager/src/main/java/cz/muni/pa165/carmanager/facade/CarManagerFacade.java +++ b/car_manager/src/main/java/cz/muni/pa165/carmanager/facade/CarManagerFacade.java @@ -5,6 +5,9 @@ import cz.muni.pa165.common.racecomponents.Config; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +/** + * Facade for car managing. + */ @Service @Transactional public class CarManagerFacade { diff --git a/car_manager/src/main/java/cz/muni/pa165/carmanager/rest/CarManagerController.java b/car_manager/src/main/java/cz/muni/pa165/carmanager/rest/CarManagerController.java index 58ad8d92..a05270d1 100644 --- a/car_manager/src/main/java/cz/muni/pa165/carmanager/rest/CarManagerController.java +++ b/car_manager/src/main/java/cz/muni/pa165/carmanager/rest/CarManagerController.java @@ -1,9 +1,11 @@ package cz.muni.pa165.carmanager.rest; +import com.fasterxml.jackson.databind.ObjectMapper; import cz.muni.pa165.carmanager.facade.CarManagerFacade; import cz.muni.pa165.common.racecomponents.Config; import io.swagger.v3.oas.annotations.Operation; import jakarta.validation.Valid; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; @@ -13,6 +15,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +/** + * Controller for managing cars. + */ @RestController @RequestMapping(path = "/car") @Validated diff --git a/car_manager/src/main/java/cz/muni/pa165/carmanager/service/CarManagerService.java b/car_manager/src/main/java/cz/muni/pa165/carmanager/service/CarManagerService.java index f0d3c76f..88820558 100644 --- a/car_manager/src/main/java/cz/muni/pa165/carmanager/service/CarManagerService.java +++ b/car_manager/src/main/java/cz/muni/pa165/carmanager/service/CarManagerService.java @@ -5,6 +5,9 @@ import cz.muni.pa165.common.racecomponents.Config; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +/** + * Service for managing cars. + */ @Service public class CarManagerService { @@ -14,6 +17,12 @@ public class CarManagerService { this.configRepository = configRepository; } + /** + * Calls repository to update specific config, if not found, throws exception. + * + * @param config config to update. + * @return Updated config. + */ @Transactional public Config updateConfig(Config config) { return configRepository.updateConfig(config) @@ -21,9 +30,16 @@ public class CarManagerService { "Config with id: " + config.getId() + " was not found.")); } + /** + * Calls repository to create a config, if query is not executed correctly, throws exception. + * + * @param config config to update. + * @return Updated config. + */ public Config createConfig(Config config) { return configRepository.createConfig(config) .orElseThrow( - () -> new DatabaseException("Something went wrong when creating config in database.")); + () -> new DatabaseException("Something went wrong when" + + "creating the config in database.")); } } diff --git a/car_manager/src/main/java/cz/muni/pa165/carmanager/service/DatabaseException.java b/car_manager/src/main/java/cz/muni/pa165/carmanager/service/DatabaseException.java index c70d3e77..5d33f18d 100644 --- a/car_manager/src/main/java/cz/muni/pa165/carmanager/service/DatabaseException.java +++ b/car_manager/src/main/java/cz/muni/pa165/carmanager/service/DatabaseException.java @@ -1,5 +1,8 @@ package cz.muni.pa165.carmanager.service; +/** + * Exception when a query does is not executed correctly. + */ public class DatabaseException extends RuntimeException { DatabaseException(String message) { diff --git a/car_manager/src/main/java/cz/muni/pa165/carmanager/service/ResourceNotFoundException.java b/car_manager/src/main/java/cz/muni/pa165/carmanager/service/ResourceNotFoundException.java index acb53e5d..ddfe6f14 100644 --- a/car_manager/src/main/java/cz/muni/pa165/carmanager/service/ResourceNotFoundException.java +++ b/car_manager/src/main/java/cz/muni/pa165/carmanager/service/ResourceNotFoundException.java @@ -1,22 +1,12 @@ package cz.muni.pa165.carmanager.service; +/** + * Exception when resource does not exist. + */ public class ResourceNotFoundException extends RuntimeException { - public ResourceNotFoundException() { - } - public ResourceNotFoundException(String message) { - super(message); - } + ResourceNotFoundException(String message) { + super(message); + } - public ResourceNotFoundException(String message, Throwable cause) { - super(message, cause); - } - - public ResourceNotFoundException(Throwable cause) { - super(cause); - } - - public ResourceNotFoundException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } } diff --git a/common/src/main/java/cz/muni/pa165/common/racecomponents/carcomponents/Engine.java b/common/src/main/java/cz/muni/pa165/common/racecomponents/carcomponents/Engine.java index 90bcd7a3..e448ad0d 100644 --- a/common/src/main/java/cz/muni/pa165/common/racecomponents/carcomponents/Engine.java +++ b/common/src/main/java/cz/muni/pa165/common/racecomponents/carcomponents/Engine.java @@ -1,15 +1,19 @@ package cz.muni.pa165.common.racecomponents.carcomponents; +import com.fasterxml.jackson.annotation.JsonCreator; import cz.muni.pa165.common.racecomponents.Component; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.jackson.Jacksonized; /** * Component for engines. */ @EqualsAndHashCode(callSuper = true) @Data +@RequiredArgsConstructor(onConstructor = @__(@JsonCreator)) public class Engine extends Component { - private final double power; + private double power; } -- GitLab