All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opentripplanner.api.resource.UpdaterStatusResource Maven / Gradle / Ivy

The newest version!
package org.opentripplanner.api.resource;

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.Context;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import org.opentripplanner.standalone.api.OtpServerRequestContext;
import org.opentripplanner.updater.GraphUpdaterStatus;

/**
 * Report the status of the graph updaters via a web service.
 */
@SuppressWarnings("FieldMayBeFinal")
@Path("/routers/{ignoreRouterId}/updaters")
@Produces(MediaType.APPLICATION_JSON)
public class UpdaterStatusResource {

  private final OtpServerRequestContext serverContext;

  public UpdaterStatusResource(
    @Context OtpServerRequestContext serverContext,
    /**
     * @deprecated The support for multiple routers are removed from OTP2.
     * See https://github.com/opentripplanner/OpenTripPlanner/issues/2760
     */
    @Deprecated @PathParam("ignoreRouterId") String ignoreRouterId
  ) {
    this.serverContext = serverContext;
  }

  /** Return a list of all agencies in the graph. */
  @GET
  public Response getUpdaters() {
    GraphUpdaterStatus updaterStatus = serverContext.transitService().getUpdaterStatus();
    if (updaterStatus == null) {
      return Response.status(Response.Status.NOT_FOUND).entity("No updaters running.").build();
    }
    return Response.status(Response.Status.OK)
      .entity(updaterStatus.getUpdaterDescriptions())
      .build();
  }

  /** Return status for a specific updater. */
  @GET
  @Path("/{updaterId}")
  public Response getUpdaters(@PathParam("updaterId") int updaterId) {
    GraphUpdaterStatus updaterStatus = serverContext.transitService().getUpdaterStatus();
    if (updaterStatus == null) {
      return Response.status(Response.Status.NOT_FOUND).entity("No updaters running.").build();
    }
    Class updater = updaterStatus.getUpdaterClass(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).build();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy