package com.mozilla.grouperfish.rest.jaxrs;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import com.google.inject.Inject;
import com.mozilla.grouperfish.services.api.Grid;
//:TODO: v0.1
// Integrate facet query parameters
@Path("/results/{namespace}/{transform}/{query}")
public class ResultsResource extends ResourceBase {
@Inject
public ResultsResource(final Grid grid) { super(grid); }
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getResult(@PathParam("namespace") String namespace,
@PathParam("transform") String transformName,
@PathParam("query") String queryName,
@Context HttpServletRequest request) {
return RestHelper.getAny(getClass(), scope(namespace), key(transformName, queryName), request);
}
@PUT
@Consumes(MediaType.APPLICATION_JSON)
public Response putResult(@PathParam("namespace") String namespace,
@PathParam("transform") String transformName,
@PathParam("query") String queryName,
@Context HttpServletRequest request) throws IOException {
return RestHelper.putAny(getClass(), scope(namespace), key(transformName, queryName), request);
}
@DELETE
public Response deleteResult(@PathParam("namespace") String namespace,
@PathParam("transform") String transformName,
@PathParam("query") String queryName,
@Context HttpServletRequest request) throws IOException {
return RestHelper.deleteAny(getClass(), scope(namespace), key(transformName, queryName), request);
}
public static String key(final String transformName, final String queryName) {
return String.format("%s_%s", transformName, queryName);
}
}