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; } }