package cz.coffei.foodo.data.rest;
import cz.coffei.foodo.data.dao.PriceConstantDao;
import cz.coffei.foodo.data.entities.PriceConstant;
import cz.coffei.foodo.data.rest.utils.ErrorHelper;
import javax.ejb.EJBException;
import javax.ejb.EJBTransactionRolledbackException;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.persistence.NoResultException;
import javax.ws.rs.*;
import javax.ws.rs.core.Response;
/**
* Created by jtrantin on 8.8.15.
*/
@Path("/constants")
@Produces("application/json;charset=UTF-8")
@Consumes("application/json;charset=UTF-8")
@RequestScoped
public class PriceConstantRESTService {
@Inject
private PriceConstantDao dao;
@POST
@Path("/{name}")
public Response setConstant(@PathParam("name") String name, PriceConstant constant) {
constant.setName(name);
try {
dao.setConstant(constant);
return Response.ok().build();
} catch (EJBTransactionRolledbackException e) {
return ErrorHelper.processEJBTransactionFailure(e);
}
}
@GET
@Path("/{name}")
public Response getConstant(@PathParam("name") String name) {
try {
PriceConstant constant = dao.getPriceConstant(name);
return Response.ok(constant).build();
} catch (EJBException e) {
NoResultException ex = ErrorHelper.findExceptionByClass(e, NoResultException.class);
if(ex!=null) {
return Response.noContent().build();
}
return Response.serverError().build();
}
}
}