package org.lightfish.business.escalation.boundary; import java.net.URI; import java.util.List; import javax.ejb.Stateless; import javax.inject.Inject; import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; import org.lightfish.business.escalation.control.ScriptStore; import org.lightfish.business.escalation.entity.Script; /** * @author adam bien, adam-bien.com */ @Path("scripts") @Stateless @Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON}) @Consumes({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON}) public class ScriptingResource { @Inject ScriptStore scripting; @Context UriInfo uri; @GET public List<Script> scripts(){ return scripting.scripts(); } @GET @Path("{id}") public Script script(@PathParam("id") String id){ return scripting.getScript(id); } @PUT public Response save(Script script){ Script saved = scripting.save(script); URI location = uri.getAbsolutePathBuilder().path(saved.getName()).build(); return Response.created(location).build(); } @DELETE @Path("{name}") public Response delete(@PathParam("name") String name){ scripting.delete(name); return Response.ok().build(); } }