Skip to content

Commit 886067f

Browse files
committed
test(cucumber_fetch_and_save): add exception handler for constrain violation
1 parent eb27a26 commit 886067f

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

src/main/java/com/xpeho/spring_boot_java_random_user/presentation/exceptions/GlobalExceptionHandler.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.xpeho.spring_boot_java_random_user.domain.exceptions.InvalidPaginationException;
44
import com.xpeho.spring_boot_java_random_user.domain.exceptions.UserNotFoundException;
5+
import jakarta.validation.ConstraintViolationException;
56
import org.slf4j.Logger;
67
import org.slf4j.LoggerFactory;
78
import org.springframework.http.HttpStatus;
@@ -14,6 +15,16 @@
1415
public class GlobalExceptionHandler {
1516
private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
1617

18+
@ExceptionHandler(ConstraintViolationException.class)
19+
public ResponseEntity<ErrorResponse> handleConstraintViolationException(ConstraintViolationException ex) {
20+
String message = ex.getConstraintViolations().stream()
21+
.map(v -> v.getPropertyPath() + ": " + v.getMessage())
22+
.findFirst()
23+
.orElse(ex.getMessage());
24+
logger.warn("Constraint violation: {}", message);
25+
return buildErrorResponse("INVALID_PARAMETER", message, HttpStatus.BAD_REQUEST);
26+
}
27+
1728
@ExceptionHandler(InvalidPaginationException.class)
1829
public ResponseEntity<ErrorResponse> handleInvalidPaginationException(InvalidPaginationException ex) {
1930
logger.warn("Invalid pagination request: {}", ex.getMessage());

0 commit comments

Comments
 (0)