package com.sequenceiq.cloudbreak.util;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class JaxRSUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(JaxRSUtil.class);
private JaxRSUtil() {
}
public static <T> T response(Response response, Class<T> clazz) {
if (Response.Status.Family.SUCCESSFUL != response.getStatusInfo().getFamily()) {
if (!response.getMediaType().isCompatible(MediaType.APPLICATION_JSON_TYPE)) {
String errormsg = "Status: " + response.getStatusInfo().getStatusCode() + " " + response.getStatusInfo().getReasonPhrase();
String textResponse = response.readEntity(String.class);
LOGGER.error("Received error: {}", textResponse);
throw new WebApplicationException(errormsg);
}
}
return response.readEntity(clazz);
}
}