initial commit

This commit is contained in:
2025-06-12 13:52:55 +02:00
parent 762bb977ac
commit b435c2e5f5
6 changed files with 265 additions and 5 deletions

View File

@@ -0,0 +1,46 @@
package zw.qantra.tm.exceptions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.client.ResponseErrorHandler;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.stream.Collectors;
@Component
public class RestTemplateResponseErrorHandler
implements ResponseErrorHandler {
private Logger logger = LoggerFactory.getLogger(this.getClass().toString());
@Override
public boolean hasError(ClientHttpResponse httpResponse)
throws IOException {
return (
httpResponse.getStatusCode().is5xxServerError()
|| httpResponse.getStatusCode().is4xxClientError());
}
@Override
public void handleError(ClientHttpResponse httpResponse)
throws IOException {
logger.info("Rest error code: " + httpResponse.getStatusCode());
if (httpResponse.getStatusCode()
.is5xxServerError()) {
// handle SERVER_ERROR
logger.info("Server Error");
} else if (httpResponse.getStatusCode().is4xxClientError()) {
// handle CLIENT_ERROR
logger.info("Client Error");
BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getBody()));
String httpBodyResponse = reader.lines().collect(Collectors.joining(""));
throw new RestException(httpBodyResponse, "Client Error");
}
}
}