org.opentripplanner.api.resource.UpdaterStatusResource Maven / Gradle / Ivy
package org.opentripplanner.api.resource;
import org.opentripplanner.standalone.OTPServer;
import org.opentripplanner.standalone.Router;
import org.opentripplanner.updater.GraphUpdater;
import org.opentripplanner.updater.GraphUpdaterManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ws.rs.*;
import javax.ws.rs.core.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
/**
* Report the status of the graph updaters via a web service.
*/
@Path("/routers/{routerId}/updaters")
@Produces(MediaType.APPLICATION_JSON)
public class UpdaterStatusResource {
private static final Logger LOG = LoggerFactory.getLogger(UpdaterStatusResource.class);
/** Choose short or long form of results. */
@QueryParam("detail") private boolean detail = false;
Router router;
public UpdaterStatusResource (@Context OTPServer otpServer, @PathParam("routerId") String routerId) {
router = otpServer.getRouter(routerId);
}
/** Return a list of all agencies in the graph. */
@GET
public Response getUpdaters () {
GraphUpdaterManager updaterManager = router.graph.updaterManager;
if (updaterManager == null) {
return Response.status(Response.Status.NOT_FOUND).entity("No updaters running.").build();
}
return Response.status(Response.Status.OK).entity(updaterManager.getUpdaterDescriptions()).build();
}
/** Return status for a specific updater. */
@GET
@Path("/{updaterId}")
public Response getUpdaters (@PathParam("updaterId") int updaterId) {
GraphUpdaterManager updaterManager = router.graph.updaterManager;
if (updaterManager == null) {
return Response.status(Response.Status.NOT_FOUND).entity("No updaters running.").build();
}
GraphUpdater updater = updaterManager.getUpdater(updaterId);
if (updater == null) {
return Response.status(Response.Status.NOT_FOUND).entity("No updater with that ID.").build();
}
return Response.status(Response.Status.OK).entity(updater.getClass()).build();
}
}