package action.cliente.productos; import com.opensymphony.xwork2.ActionSupport; import dao.ComentarioDAO; import dao.ProductoDAO; import java.util.ArrayList; import java.util.Date; import java.util.Map; import model.Cliente; import model.Comentario; import model.Producto; import org.apache.struts2.interceptor.RequestAware; import org.apache.struts2.interceptor.SessionAware; import org.bson.types.ObjectId; public class ComentarAction extends ActionSupport implements RequestAware, SessionAware { /* Session */ private Map session; /* Request */ private Map<String, Object> request; /* Acceso a Datos */ ProductoDAO productoDAO; /* Alerta */ String alerta = null; String error = null; /* Datos */ String comentario, id; public ComentarAction() { productoDAO = new ProductoDAO(); } public String execute() { /* Obtenemos la sesión */ session = getSession(); /* Obtenemos el cliente conectado */ Cliente cliente = (Cliente) session.get("user"); /* Generamos Id*/ ObjectId oid = new ObjectId(id); /* Buscamos producto por Id */ Producto producto = productoDAO.find(oid); /* Creamos Comentario */ Comentario com = new Comentario(); com.setTexto(comentario); com.setUsuario(cliente); com.setCreacion(new Date()); if(producto.getComentarios()!= null) { producto.getComentarios().add(com); } else{ ArrayList<Comentario> comentarios= new ArrayList<Comentario>(); comentarios.add(com); producto.setComentarios(comentarios); } /* Almacenamos Referencia */ productoDAO.save(producto); /* Establecer Alert */ alerta = "Su comentario se ha realizado con éxito"; return "SUCCESS"; } public String getComentario() { return comentario; } public void setComentario(String comentario) { this.comentario = comentario; } public String getId() { return id; } public void setId(String id) { this.id = id; } public Map<String, Object> getRequest() { return request; } @Override public void setSession(Map session) { this.session = session; } public Map getSession() { return session; } @Override public void setRequest(Map<String, Object> map) { this.request = map; } public String getAlerta() { return alerta; } public void setAlerta(String alerta) { this.alerta = alerta; } public String getError() { return error; } public void setError(String error) { this.error = error; } }