diff --git a/backend/src/main/java/com/vaessl/app/connection/HomeboxConnectionProvider.java b/backend/src/main/java/com/vaessl/app/connection/HomeboxConnectionProvider.java index 812c920..6e86b8d 100644 --- a/backend/src/main/java/com/vaessl/app/connection/HomeboxConnectionProvider.java +++ b/backend/src/main/java/com/vaessl/app/connection/HomeboxConnectionProvider.java @@ -9,10 +9,8 @@ import java.util.Map; import org.springframework.stereotype.Component; import org.springframework.web.client.RestClient; -import com.vaessl.app.exception.ConnectionNotFoundException; import com.vaessl.app.exception.EmptyCredentialsException; -import com.vaessl.app.search.SearchRequest; -import com.vaessl.app.search.SearchResponse; +import com.vaessl.app.exception.RemoteApiException; import static com.vaessl.app.connection.Endpoint.*; @@ -60,8 +58,7 @@ public class HomeboxConnectionProvider implements ConnectionProvider { .body(HomeboxLoginResponse.class); if (hbResponse == null) { - throw new IllegalStateException( - "Remote API returned an empty body for " + request.appUrl()); + throw new RemoteApiException(request.appUrl()); } Map attachmentToken = new HashMap<>(); diff --git a/backend/src/main/java/com/vaessl/app/exception/GlobalExceptionHandler.java b/backend/src/main/java/com/vaessl/app/exception/GlobalExceptionHandler.java index db29162..f7fa664 100644 --- a/backend/src/main/java/com/vaessl/app/exception/GlobalExceptionHandler.java +++ b/backend/src/main/java/com/vaessl/app/exception/GlobalExceptionHandler.java @@ -58,4 +58,10 @@ public class GlobalExceptionHandler { return ProblemDetail.forStatusAndDetail(BAD_REQUEST_EMPTY_FIELDS.getStatus(), BAD_REQUEST_EMPTY_FIELDS.getMessage() + " " + e.getMissingFields()); } + + @ExceptionHandler(RemoteApiException.class) + public ProblemDetail handleRemoteApiException(RemoteApiException e) { + return ProblemDetail.forStatusAndDetail(REMOTE_API_EMPTY_RESPONSE.getStatus(), + REMOTE_API_EMPTY_RESPONSE.getMessage() + e.getAppUrl()); + } } diff --git a/backend/src/main/java/com/vaessl/app/exception/RemoteApiException.java b/backend/src/main/java/com/vaessl/app/exception/RemoteApiException.java new file mode 100644 index 0000000..e35e40c --- /dev/null +++ b/backend/src/main/java/com/vaessl/app/exception/RemoteApiException.java @@ -0,0 +1,11 @@ +package com.vaessl.app.exception; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@Getter +@RequiredArgsConstructor +public class RemoteApiException extends RuntimeException { + + private final String appUrl; +}