package com.packtpub.as7development.chapter8.webservice;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import com.packtpub.as7development.chapter8.ejb.TheatreBox;
import com.packtpub.as7development.chapter8.model.Seat;
@Path("/seat")
@RequestScoped
public class TicketRESTService {
@Inject
TheatreBox service;
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Seat> getSeatList() {
return service.getSeatList();
}
@POST
@Path("/{id:\\d+}")
@Produces(MediaType.APPLICATION_JSON)
public Response buyTicket(@PathParam("id") int id) {
Response.ResponseBuilder builder = null;
try {
service.buyTicket(id);
builder = Response.ok("Ticket booked");
}
catch (Exception e) {
// Handle generic exceptions
Map<String, String> responseObj = new HashMap<String, String>();
responseObj.put("error", e.getMessage());
builder = Response.status(Response.Status.BAD_REQUEST).entity(responseObj);
}
return builder.build();
}
}