package restservices;
import com.google.gson.Gson;
import dao.PedidoDAO;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Request;
import javax.ws.rs.core.UriInfo;
import model.Pedido;
import org.bson.types.ObjectId;
import restservices.request.EstadoRequest;
import restservices.response.EstadoResponse;
@Path("estado")
public class EstadoService {
@Context
UriInfo uriInfo;
@Context
Request request;
/* JSON DE ENTRADA
{
"idpedido": "str",
"estado": "str"
}
*/
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces({MediaType.APPLICATION_JSON})
@Path("cambiar")
public EstadoResponse cambiarEstado(String request) {
/* Parsear Json de entrada*/
Gson gson = new Gson();
EstadoRequest estadorequest = new EstadoRequest();
estadorequest = gson.fromJson(request, EstadoRequest.class);
/* Buscar pedido para id obtenida */
PedidoDAO pedidoDAO = new PedidoDAO();
ObjectId oid = new ObjectId(estadorequest.getIdpedido());
Pedido pedido = pedidoDAO.find(oid);
EstadoResponse estado = new EstadoResponse();
if (pedido == null) {
estado.setEstado("ID incorrecta");
return estado;
}
/* Cambiar Estado */
pedido.setEstado(Integer.valueOf(estadorequest.getEstado()));
/* Almacenar Pedido en BBDD */
pedidoDAO.save(pedido);
/* Devolver Respuesta */
estado.setEstado("ok");
return estado;
}
}