package fi.otavanopisto.muikku.plugins.fish.rest;
import java.util.Random;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import fi.otavanopisto.muikku.plugin.PluginRESTService;
import fi.otavanopisto.muikku.plugins.fish.RestFishController;
@RequestScoped
@Path("/fish")
@Produces("application/json")
public class RestFishRestService extends PluginRESTService {
@Inject
private RestFishController restFishController;
@GET
@Path("/messages")
public Response listMessages() {
return Response.ok(restFishController.getMessages()).build();
}
@GET
@Path("/messages/{index: [0-9]+}")
public Response getMessage(@PathParam("index") int index) {
long count = restFishController.getCount();
if (index < 0 || index >= count) {
return Response.status(Status.NOT_FOUND).build();
}
return Response.ok(restFishController.getMessage(index)).build();
}
@GET
@Path("/messages/random")
public Response getRandomMessage() {
int index = (new Random().nextInt(restFishController.getCount()));
return Response.ok(restFishController.getMessage(index)).build();
}
}