Skip to content

Commit 52c8ee8

Browse files
committed
Refactor ProxyService code
1 parent 8d90415 commit 52c8ee8

File tree

1 file changed

+33
-20
lines changed

1 file changed

+33
-20
lines changed

src/main/java/com/longcoding/moon/services/ProxyServiceImpl.java

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -70,31 +70,36 @@ public void requestProxyService(HttpServletRequest request, DeferredResult<Respo
7070
@Override
7171
public void onComplete(Result result) {
7272
if (result.isSucceeded()) {
73-
ResponseEntity<JsonNode> responseEntity;
7473

75-
responseInfo.setProxyElapsedTime(System.currentTimeMillis() - proxyStartTime);
74+
try {
75+
ResponseEntity<JsonNode> responseEntity;
7676

77-
if (log.isDebugEnabled()){
78-
log.debug("Http Proxy ElapsedTime " + responseInfo.getProxyElapsedTime());
79-
}
77+
responseInfo.setProxyElapsedTime(System.currentTimeMillis() - proxyStartTime);
78+
79+
if (log.isDebugEnabled()){
80+
log.debug("Http Proxy ElapsedTime " + responseInfo.getProxyElapsedTime());
81+
}
8082

81-
HttpFields responseHeaders = result.getResponse().getHeaders();
82-
if (responseHeaders.contains(HttpHeader.CONTENT_TYPE)) {
83-
String contentTypeValue = responseHeaders.get(HttpHeader.CONTENT_TYPE);
84-
if ( contentTypeValue.split(Constant.CONTENT_TYPE_EXTRACT_DELIMITER)[0]
85-
.equals(responseInfo.getRequestAccept().split(Constant.CONTENT_TYPE_EXTRACT_DELIMITER)[0])){
83+
HttpFields responseHeaders = result.getResponse().getHeaders();
84+
if (checkContentType(responseHeaders)) {
8685

8786
JsonNode responseInJsonNode = InputStreamToJsonObj(getContentAsInputStream());
8887
responseEntity =
8988
new ResponseEntity<>(responseInJsonNode, HttpStatus.valueOf(result.getResponse().getStatus()));
9089

9190
deferredResult.setResult(responseEntity);
92-
return ;
91+
92+
} else {
93+
log.error(getContentAsString());
94+
deferredResult.setErrorResult(new ProxyServiceFailException(ERROR_MESSAGE_WRONG_CONTENT_TYPE));
9395
}
96+
97+
} catch (IOException ex) {
98+
99+
log.error(getContentAsString());
100+
deferredResult.setErrorResult(new ProxyServiceFailException(HttpStatus.BAD_GATEWAY.getReasonPhrase()));
94101
}
95102

96-
log.error(getContentAsString());
97-
deferredResult.setErrorResult(new ProxyServiceFailException(ERROR_MESSAGE_WRONG_CONTENT_TYPE));
98103
}
99104
}
100105

@@ -105,6 +110,16 @@ public void onFailure(Response response, Throwable failure) {
105110
});
106111
}
107112

113+
private boolean checkContentType(HttpFields responseHeaders) {
114+
if (responseHeaders.contains(HttpHeader.CONTENT_TYPE)) {
115+
String contentTypeValue = responseHeaders.get(HttpHeader.CONTENT_TYPE);
116+
return contentTypeValue.split(Constant.CONTENT_TYPE_EXTRACT_DELIMITER)[0]
117+
.equals(responseInfo.getRequestAccept().split(Constant.CONTENT_TYPE_EXTRACT_DELIMITER)[0])
118+
}
119+
120+
return false;
121+
}
122+
108123
/**
109124
* Create a new request object based on the variables created in prepareProxyInterceptor.
110125
*
@@ -144,13 +159,11 @@ private static Request setHeaderAndQueryInfo(Request request, ResponseInfo respo
144159
* @param responseInput An inputStream containing the response body received by the outbound service.
145160
* @return The jsonNode object with the response body changed to json format.
146161
*/
147-
private static JsonNode InputStreamToJsonObj(InputStream responseInput) {
148-
try {
149-
InputStreamReader responseInputStreamReader = new InputStreamReader(responseInput, Charset.forName(Constant.SERVER_DEFAULT_ENCODING_TYPE));
150-
return JsonUtil.getObjectMapper().readTree(responseInputStreamReader);
151-
} catch (IOException ex) {
152-
throw new ProxyServiceFailException(ERROR_MESSAGE_WRONG_CONTENT_TYPE);
153-
}
162+
private static JsonNode InputStreamToJsonObj(InputStream responseInput) throws IOException {
163+
164+
InputStreamReader responseInputStreamReader = new InputStreamReader(responseInput, Charset.forName(Constant.SERVER_DEFAULT_ENCODING_TYPE));
165+
return JsonUtil.getObjectMapper().readTree(responseInputStreamReader);
166+
154167
}
155168

156169
}

0 commit comments

Comments
 (0)