package dials.dropwizard.server.resources;
import dials.Dials;
import dials.dropwizard.api.FeatureStateRequest;
import dials.dropwizard.api.FeatureStateResponse;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/dials")
public class DialsFeatureStateResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/{featureName}")
public FeatureStateResponse getState(@PathParam("featureName") String featureName) {
return new FeatureStateResponse(Dials.getState(featureName));
}
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/{featureName}")
public FeatureStateResponse getState(@PathParam("featureName") String featureName, FeatureStateRequest request) {
return new FeatureStateResponse(Dials.getState(featureName, request.getData()));
}
@POST
@Path("/{featureName}/error")
public Response registerError(@PathParam("featureName") String featureName) {
Dials.sendError(featureName);
return Response.ok().build();
}
}