From 1f4256124f76a0da74a5a796569d0de7787e8077 Mon Sep 17 00:00:00 2001 From: Phan Huy Tran Date: Thu, 24 Apr 2025 14:33:38 +0200 Subject: [PATCH] refactor: throw and handle user not found exceptions --- .../casino/blackjack/BlackJackGameController.java | 13 +++++++------ .../exceptionHandling/GlobalExceptionHandler.java | 14 +++----------- .../ResourceNotFoundException.java | 11 ----------- .../exceptions/UserNotFoundException.java | 11 +++++++++++ .../szut/casino/lootboxes/LootBoxController.java | 3 ++- .../java/de/szut/casino/slots/SlotController.java | 3 ++- .../java/de/szut/casino/user/UserController.java | 3 ++- 7 files changed, 27 insertions(+), 31 deletions(-) delete mode 100644 backend/src/main/java/de/szut/casino/exceptionHandling/ResourceNotFoundException.java create mode 100644 backend/src/main/java/de/szut/casino/exceptionHandling/exceptions/UserNotFoundException.java diff --git a/backend/src/main/java/de/szut/casino/blackjack/BlackJackGameController.java b/backend/src/main/java/de/szut/casino/blackjack/BlackJackGameController.java index c9d5c26..0144a36 100644 --- a/backend/src/main/java/de/szut/casino/blackjack/BlackJackGameController.java +++ b/backend/src/main/java/de/szut/casino/blackjack/BlackJackGameController.java @@ -1,5 +1,6 @@ package de.szut.casino.blackjack; +import de.szut.casino.exceptionHandling.exceptions.UserNotFoundException; import de.szut.casino.shared.dto.BetDto; import de.szut.casino.shared.service.BalanceService; import de.szut.casino.user.UserEntity; @@ -31,7 +32,7 @@ public class BlackJackGameController { Optional optionalUser = userService.getCurrentUser(token); if (optionalUser.isEmpty()) { - return ResponseEntity.notFound().build(); + throw new UserNotFoundException(); } UserEntity user = optionalUser.get(); @@ -48,7 +49,7 @@ public class BlackJackGameController { Optional optionalUser = userService.getCurrentUser(token); if (optionalUser.isEmpty()) { - return ResponseEntity.notFound().build(); + throw new UserNotFoundException(); } UserEntity user = optionalUser.get(); @@ -65,7 +66,7 @@ public class BlackJackGameController { Optional optionalUser = userService.getCurrentUser(token); if (optionalUser.isEmpty()) { - return ResponseEntity.notFound().build(); + throw new UserNotFoundException(); } UserEntity user = optionalUser.get(); @@ -82,7 +83,7 @@ public class BlackJackGameController { Optional optionalUser = userService.getCurrentUser(token); if (optionalUser.isEmpty()) { - return ResponseEntity.notFound().build(); + throw new UserNotFoundException(); } UserEntity user = optionalUser.get(); @@ -99,7 +100,7 @@ public class BlackJackGameController { Optional optionalUser = userService.getCurrentUser(token); if (optionalUser.isEmpty()) { - return ResponseEntity.notFound().build(); + throw new UserNotFoundException(); } UserEntity user = optionalUser.get(); @@ -116,7 +117,7 @@ public class BlackJackGameController { Optional optionalUser = userService.getCurrentUser(token); if (optionalUser.isEmpty()) { - return ResponseEntity.notFound().build(); + throw new UserNotFoundException(); } UserEntity user = optionalUser.get(); diff --git a/backend/src/main/java/de/szut/casino/exceptionHandling/GlobalExceptionHandler.java b/backend/src/main/java/de/szut/casino/exceptionHandling/GlobalExceptionHandler.java index b307601..fde23e6 100644 --- a/backend/src/main/java/de/szut/casino/exceptionHandling/GlobalExceptionHandler.java +++ b/backend/src/main/java/de/szut/casino/exceptionHandling/GlobalExceptionHandler.java @@ -1,8 +1,6 @@ package de.szut.casino.exceptionHandling; -import io.swagger.v3.oas.annotations.media.Content; -import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.responses.ApiResponses; +import de.szut.casino.exceptionHandling.exceptions.UserNotFoundException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ControllerAdvice; @@ -12,17 +10,11 @@ import org.springframework.web.context.request.WebRequest; import java.util.Date; @ControllerAdvice -@ApiResponses(value = { - @ApiResponse(responseCode = "500", description = "invalid JSON posted", - content = @Content) -}) public class GlobalExceptionHandler { - @ExceptionHandler(ResourceNotFoundException.class) - public ResponseEntity handleHelloEntityNotFoundException(ResourceNotFoundException ex, WebRequest request) { + @ExceptionHandler(UserNotFoundException.class) + public ResponseEntity handleUserNotFoundException(UserNotFoundException ex, WebRequest request) { ErrorDetails errorDetails = new ErrorDetails(new Date(), ex.getMessage(), request.getDescription(false)); return new ResponseEntity<>(errorDetails, HttpStatus.NOT_FOUND); } - - } diff --git a/backend/src/main/java/de/szut/casino/exceptionHandling/ResourceNotFoundException.java b/backend/src/main/java/de/szut/casino/exceptionHandling/ResourceNotFoundException.java deleted file mode 100644 index 2217a39..0000000 --- a/backend/src/main/java/de/szut/casino/exceptionHandling/ResourceNotFoundException.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.szut.casino.exceptionHandling; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(value = HttpStatus.NOT_FOUND) -public class ResourceNotFoundException extends RuntimeException { - public ResourceNotFoundException(String message) { - super(message); - } -} diff --git a/backend/src/main/java/de/szut/casino/exceptionHandling/exceptions/UserNotFoundException.java b/backend/src/main/java/de/szut/casino/exceptionHandling/exceptions/UserNotFoundException.java new file mode 100644 index 0000000..6916a66 --- /dev/null +++ b/backend/src/main/java/de/szut/casino/exceptionHandling/exceptions/UserNotFoundException.java @@ -0,0 +1,11 @@ +package de.szut.casino.exceptionHandling.exceptions; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(value = HttpStatus.NOT_FOUND) +public class UserNotFoundException extends RuntimeException { + public UserNotFoundException() { + super("user not found"); + } +} diff --git a/backend/src/main/java/de/szut/casino/lootboxes/LootBoxController.java b/backend/src/main/java/de/szut/casino/lootboxes/LootBoxController.java index 2d4309d..1070e6c 100644 --- a/backend/src/main/java/de/szut/casino/lootboxes/LootBoxController.java +++ b/backend/src/main/java/de/szut/casino/lootboxes/LootBoxController.java @@ -1,5 +1,6 @@ package de.szut.casino.lootboxes; +import de.szut.casino.exceptionHandling.exceptions.UserNotFoundException; import de.szut.casino.user.UserEntity; import de.szut.casino.user.UserRepository; import de.szut.casino.user.UserService; @@ -37,7 +38,7 @@ public class LootBoxController { Optional optionalUser = userService.getCurrentUser(token); if (optionalUser.isEmpty()) { - return ResponseEntity.notFound().build(); + throw new UserNotFoundException(); } UserEntity user = optionalUser.get(); diff --git a/backend/src/main/java/de/szut/casino/slots/SlotController.java b/backend/src/main/java/de/szut/casino/slots/SlotController.java index 8f98b1d..bb96715 100644 --- a/backend/src/main/java/de/szut/casino/slots/SlotController.java +++ b/backend/src/main/java/de/szut/casino/slots/SlotController.java @@ -1,5 +1,6 @@ package de.szut.casino.slots; +import de.szut.casino.exceptionHandling.exceptions.UserNotFoundException; import de.szut.casino.shared.dto.BetDto; import de.szut.casino.shared.service.BalanceService; import de.szut.casino.user.UserEntity; @@ -31,7 +32,7 @@ public class SlotController { Optional optionalUser = userService.getCurrentUser(token); if (optionalUser.isEmpty()) { - return ResponseEntity.notFound().build(); + throw new UserNotFoundException(); } UserEntity user = optionalUser.get(); diff --git a/backend/src/main/java/de/szut/casino/user/UserController.java b/backend/src/main/java/de/szut/casino/user/UserController.java index c2ad0d0..a5cae8c 100644 --- a/backend/src/main/java/de/szut/casino/user/UserController.java +++ b/backend/src/main/java/de/szut/casino/user/UserController.java @@ -1,5 +1,6 @@ package de.szut.casino.user; +import de.szut.casino.exceptionHandling.exceptions.UserNotFoundException; import de.szut.casino.user.dto.CreateUserDto; import de.szut.casino.user.dto.GetUserDto; import jakarta.validation.Valid; @@ -34,7 +35,7 @@ public class UserController { GetUserDto userData = userService.getCurrentUserAsDto(token); if (userData == null) { - return ResponseEntity.notFound().build(); + throw new UserNotFoundException(); } return ResponseEntity.ok(userData);