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