package org.simbasecurity.dwclient.gateway.resources;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
import org.slf4j.Logger;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
public abstract class AbstractSimbaService {
private WebResource webResource;
protected AbstractSimbaService(WebResource webResource) {
this.webResource = webResource;
}
public WebResource getSimbaResource() {
return webResource;
}
protected void handleError(String action, String username, ClientResponse clientResponse, Logger logger) {
handleError(action, null, username, clientResponse, logger);
}
protected void handleError(String action, String rolename, String username, ClientResponse clientResponse, Logger logger) {
clientResponse.bufferEntity();
int status = clientResponse.getStatus();
if (status >= 300) {
String message = clientResponse.getEntity(String.class);
logger.error("Action {}\nRolename {}\nUsername {}\nStatus {}\nMessage {}", action, rolename, username, status, message);
throw new WebApplicationException(Response.status(status).entity(message).build());
}
}
}