X-Git-Url: http://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2Fapi%2FChatBackendControllerAdvice.java;h=b64f7e001159f23a5b8a0a67fb48d66ff3014ff2;hb=f2f0cdc6901d1117ac385e10e2c8a28a1886726c;hp=fb9c0f2364117ecb8a24b2425e48201acbee98b1;hpb=e5da0c626f508cfae48bad543c9afe1090f39a9a;p=demos%2Fkafka%2Fchat diff --git a/src/main/java/de/juplo/kafka/chat/backend/api/ChatBackendControllerAdvice.java b/src/main/java/de/juplo/kafka/chat/backend/api/ChatBackendControllerAdvice.java index fb9c0f23..b64f7e00 100644 --- a/src/main/java/de/juplo/kafka/chat/backend/api/ChatBackendControllerAdvice.java +++ b/src/main/java/de/juplo/kafka/chat/backend/api/ChatBackendControllerAdvice.java @@ -18,6 +18,36 @@ public class ChatBackendControllerAdvice @Value("${server.context-path:/}") String contextPath; + @ExceptionHandler(UnknownChatroomException.class) + public final ProblemDetail handleException( + UnknownChatroomException e, + ServerWebExchange exchange, + UriComponentsBuilder uriComponentsBuilder) + { + final HttpStatus status = HttpStatus.NOT_FOUND; + ProblemDetail problem = ProblemDetail.forStatus(status); + + problem.setProperty("timestamp", new Date()); + + problem.setProperty("requestId", exchange.getRequest().getId()); + + problem.setType(uriComponentsBuilder.replacePath(contextPath).path("/problem/unknown-chatroom").build().toUri()); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(status.getReasonPhrase()); + stringBuilder.append(" - "); + stringBuilder.append(e.getMessage()); + problem.setTitle(stringBuilder.toString()); + + stringBuilder.setLength(0); + stringBuilder.append("Chatroom unknown: "); + stringBuilder.append(e.getChatroomId()); + problem.setDetail(stringBuilder.toString()); + + problem.setProperty("chatroomId", e.getChatroomId()); + + return problem; + } + @ExceptionHandler(MessageMutationException.class) public final ProblemDetail handleException( MessageMutationException e,