1 package org.onap.sdc.dcae.utils;
3 import com.google.gson.Gson;
4 import org.onap.sdc.dcae.catalog.asdc.ASDCException;
5 import org.onap.sdc.dcae.errormng.RequestError;
6 import org.onap.sdc.dcae.errormng.ResponseFormat;
7 import org.springframework.http.client.ClientHttpResponse;
8 import org.springframework.web.client.DefaultResponseErrorHandler;
9 import org.springframework.web.client.HttpClientErrorException;
10 import org.springframework.web.client.ResponseErrorHandler;
12 import java.io.IOException;
14 public class SDCResponseErrorHandler implements ResponseErrorHandler {
16 private ResponseErrorHandler errorHandler = new DefaultResponseErrorHandler();
18 private static Gson gson = new Gson();
20 public void handleError(ClientHttpResponse response) throws IOException {
22 errorHandler.handleError(response);
23 } catch (HttpClientErrorException e) {
24 RequestError re = extractRequestError(e);
25 throw null == re ? e : new ASDCException(e.getStatusCode(), re);
29 public boolean hasError(ClientHttpResponse response) throws IOException{
30 return errorHandler.hasError(response);
33 private RequestError extractRequestError(HttpClientErrorException error) {
35 String body = error.getResponseBodyAsString();
36 ResponseFormat responseFormat = gson.fromJson(body, ResponseFormat.class);
37 return responseFormat.getRequestError();
38 } catch (Exception e) {