diff --git a/src/main/java/eu/ztsh/wymiana/exception/UserNotFoundException.java b/src/main/java/eu/ztsh/wymiana/exception/UserNotFoundException.java index 7390eb3..3cf38c2 100644 --- a/src/main/java/eu/ztsh/wymiana/exception/UserNotFoundException.java +++ b/src/main/java/eu/ztsh/wymiana/exception/UserNotFoundException.java @@ -5,7 +5,11 @@ import eu.ztsh.wymiana.web.model.CurrencyExchangeRequest; public class UserNotFoundException extends RuntimeException { public UserNotFoundException(CurrencyExchangeRequest entity) { - super("User with PESEL %s not found".formatted(entity.pesel())); + this(entity.pesel()); + } + + public UserNotFoundException(String pesel) { + super("User with PESEL %s not found".formatted(pesel)); } } diff --git a/src/main/java/eu/ztsh/wymiana/web/controller/ExchangeController.java b/src/main/java/eu/ztsh/wymiana/web/controller/ExchangeController.java index ae666ef..fb0ee13 100644 --- a/src/main/java/eu/ztsh/wymiana/web/controller/ExchangeController.java +++ b/src/main/java/eu/ztsh/wymiana/web/controller/ExchangeController.java @@ -1,14 +1,11 @@ package eu.ztsh.wymiana.web.controller; import eu.ztsh.wymiana.exception.InsufficientFundsException; -import eu.ztsh.wymiana.exception.UserAlreadyExistsException; import eu.ztsh.wymiana.exception.UserNotFoundException; import eu.ztsh.wymiana.service.CurrencyService; -import eu.ztsh.wymiana.validation.ValidationFailedException; import eu.ztsh.wymiana.web.model.CurrencyExchangeRequest; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpEntity; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; diff --git a/src/main/java/eu/ztsh/wymiana/web/controller/UserController.java b/src/main/java/eu/ztsh/wymiana/web/controller/UserController.java index 319d93a..bca74ce 100644 --- a/src/main/java/eu/ztsh/wymiana/web/controller/UserController.java +++ b/src/main/java/eu/ztsh/wymiana/web/controller/UserController.java @@ -1,6 +1,7 @@ package eu.ztsh.wymiana.web.controller; import eu.ztsh.wymiana.exception.UserAlreadyExistsException; +import eu.ztsh.wymiana.exception.UserNotFoundException; import eu.ztsh.wymiana.model.User; import eu.ztsh.wymiana.service.UserService; import eu.ztsh.wymiana.validation.ValidationFailedException; @@ -31,9 +32,13 @@ public class UserController { try { return userService.get(pesel) .map(ResponseEntity::ok) - .orElse(ResponseEntity.notFound().build()); - } catch (ValidationException e) { - return ResponseEntity.badRequest().build(); + .orElseThrow(() -> new UserNotFoundException(pesel)); + } catch (Exception e) { + return ResponseEntity.status(switch (e) { + case ValidationException ignore -> 400; + case UserNotFoundException ignore -> 404; + default -> 500; + }).build(); } }