package dials.dropwizard.client;
import com.sun.jersey.api.client.WebResource;
import dials.dropwizard.api.FeatureStateRequest;
import dials.dropwizard.api.FeatureStateResponse;
import dials.filter.FilterData;
import javax.ws.rs.core.MediaType;
public class DialsResourceImpl implements DialsResource {
private final WebResource dialsResource;
public DialsResourceImpl(WebResource appResource) {
this.dialsResource = appResource.path("dials");
}
@Override
public boolean getState(String feature) {
return dialsResource.path(feature).accept(MediaType.APPLICATION_JSON_TYPE).get(FeatureStateResponse.class).getState();
}
@Override
public boolean getState(String feature, FilterData data) {
return dialsResource.path(feature).accept(MediaType.APPLICATION_JSON_TYPE).type(MediaType.APPLICATION_JSON_TYPE)
.post(FeatureStateResponse.class, new FeatureStateRequest(data)).getState();
}
@Override
public void registerError(final String feature) {
new Thread(new Runnable() {
@Override
public void run() {
dialsResource.path(feature).path("error").post();
}
}).start();
}
}