// User || admin @POST @Path("/create") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public Response addProducto(@QueryParam("mongo") Boolean mongo, DataProducto dp) { Producto p = new Producto(); p.setNombre(dp.getNombre()); p.setDescripcion(dp.getDescripcion()); Categoria cat = em.find(Categoria.class, dp.getCategoria()); if (cat == null) { DataResponse dr = new DataResponse(); dr.setMensaje("Categoria " + dp.getCategoria() + " no existe"); return Response.status(500).entity(dr).build(); } p.setCategoria(cat); p.setGenerico(dp.getIsgenerico()); try { em.persist(p); em.flush(); dp.setID(p.getId()); // MONGO if (mongo == null || mongo) new MongoController().upsertProduct(dp); return Response.status(201).entity(dp).build(); } catch (Exception e) { DataResponse dr = new DataResponse(); dr.setMensaje("Error inesperado."); dr.setDescripcion(e.getMessage()); return Response.status(409).build(); } }
// if producto generico admin // else user @PUT @Path("{id}") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public Response updateProducto(@PathParam(value = "id") Long id, DataProducto dp) { Producto p = em.find(Producto.class, id); p.setNombre(dp.getNombre()); p.setDescripcion(dp.getDescripcion()); p.setGenerico(dp.getIsgenerico()); Categoria cat = em.find(Categoria.class, dp.getCategoria()); if (cat == null) { DataResponse dr = new DataResponse(); dr.setMensaje("Categoria " + dp.getCategoria() + " no existe"); return Response.status(500).entity(dr).build(); } p.setCategoria(cat); em.merge(p); // mongo thread dp.setID(p.getId()); new MongoController().upsertProduct(dp); return Response.status(200).build(); }