diff --git a/server/src/main/java/com/usatiuk/tjv/y/server/controller/ApiExceptionHandler.java b/server/src/main/java/com/usatiuk/tjv/y/server/controller/ApiExceptionHandler.java index 6c0bc5e..18c88e0 100644 --- a/server/src/main/java/com/usatiuk/tjv/y/server/controller/ApiExceptionHandler.java +++ b/server/src/main/java/com/usatiuk/tjv/y/server/controller/ApiExceptionHandler.java @@ -9,6 +9,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.transaction.TransactionSystemException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.context.request.WebRequest; @@ -27,6 +28,18 @@ public class ApiExceptionHandler extends ResponseEntityExceptionHandler { new HttpHeaders(), HttpStatus.BAD_REQUEST, request); } + @ExceptionHandler(TransactionSystemException.class) + protected ResponseEntity handleTransactionSystemException(TransactionSystemException ex, WebRequest request) { + if (ex.getRootCause() instanceof ConstraintViolationException) { + return handleConstraintViolation((ConstraintViolationException) ex.getRootCause(), request); + } else { + return handleExceptionInternal(ex, + new ErrorTo(List.of("Error"), HttpStatus.INTERNAL_SERVER_ERROR.value()), + new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR, request); + } + } + + @ExceptionHandler(AuthenticationException.class) protected ResponseEntity handleAuthenticationException(AuthenticationException ex, WebRequest request) { return handleExceptionInternal(ex, diff --git a/server/src/main/java/com/usatiuk/tjv/y/server/entity/Chat.java b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Chat.java index b7c02ae..a6f6c14 100644 --- a/server/src/main/java/com/usatiuk/tjv/y/server/entity/Chat.java +++ b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Chat.java @@ -22,7 +22,7 @@ public class Chat { @GeneratedValue private Long id; - @NotBlank + @NotBlank(message = "Name can't be empty") private String name; @OneToMany(mappedBy = "chat", orphanRemoval = true) diff --git a/server/src/main/java/com/usatiuk/tjv/y/server/entity/Message.java b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Message.java index c8a9ef3..c50ec56 100644 --- a/server/src/main/java/com/usatiuk/tjv/y/server/entity/Message.java +++ b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Message.java @@ -32,6 +32,6 @@ public class Message { private Instant createdAt; @Lob - @NotBlank + @NotBlank(message = "Message can't be empty") private String contents; } diff --git a/server/src/main/java/com/usatiuk/tjv/y/server/entity/Person.java b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Person.java index f192c87..64c299b 100644 --- a/server/src/main/java/com/usatiuk/tjv/y/server/entity/Person.java +++ b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Person.java @@ -31,6 +31,7 @@ public class Person { @Size(max = 100, message = "Name can't be longer than 100") @NotBlank(message = "Name can't be empty") private String fullName; + @NotBlank(message = "Password can't be empty") private String password; diff --git a/server/src/main/java/com/usatiuk/tjv/y/server/entity/Post.java b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Post.java index 9fdc910..bc1ec4a 100644 --- a/server/src/main/java/com/usatiuk/tjv/y/server/entity/Post.java +++ b/server/src/main/java/com/usatiuk/tjv/y/server/entity/Post.java @@ -25,8 +25,8 @@ public class Post { @ManyToOne private Person author; - @NotBlank @Lob + @NotBlank(message = "Post can't be empty") private String text; @CreationTimestamp diff --git a/server/src/main/java/com/usatiuk/tjv/y/server/security/WebSecurityConfig.java b/server/src/main/java/com/usatiuk/tjv/y/server/security/WebSecurityConfig.java index a3c4f60..a735e7e 100644 --- a/server/src/main/java/com/usatiuk/tjv/y/server/security/WebSecurityConfig.java +++ b/server/src/main/java/com/usatiuk/tjv/y/server/security/WebSecurityConfig.java @@ -37,7 +37,7 @@ public class WebSecurityConfig { } @Component - class ErrorAuthenticationEntryPoint implements AuthenticationEntryPoint { + static class ErrorAuthenticationEntryPoint implements AuthenticationEntryPoint { private final HandlerExceptionResolver resolver;