From c5ce31d55a087c2dbe6cbc702af6c1dd8ec816f8 Mon Sep 17 00:00:00 2001 From: lale1507 Date: Mon, 13 Apr 2020 22:43:01 -0500 Subject: [PATCH 01/15] Iniciativa y Asignacion Rol Backend --- pom.xml | 2 +- .../edu/eci/cvds/entities/Iniciativa.java | 114 +++++++++++++++ .../java/edu/eci/cvds/entities/Usuario.java | 1 + .../eci/cvds/guice/GuiceContextListener.java | 1 + .../eci/cvds/persistence/IniciativaDAO.java | 15 ++ .../edu/eci/cvds/persistence/UsuarioDAO.java | 7 +- .../mybatisimpl/MyBatisIniciativaDAO.java | 32 +++++ .../mybatisimpl/MyBatisUsuarioDAO.java | 18 +++ .../mybatisimpl/mappers/IniciativaMapper.java | 12 ++ .../mybatisimpl/mappers/UsuarioMapper.java | 6 +- .../services/ServiciosBancoDeProyectos.java | 16 ++- .../services/ServiciosReservaFactory.java | 1 + .../impl/ServiciosBancoDeProyectosImpl.java | 38 ++++- .../java/edu/eci/cvds/view/AdminBean.java | 45 ++++++ .../edu/eci/cvds/view/IniciativaBean.java | 24 ++++ .../resources/mappers/IniciativaMapper.xml | 49 +++++++ src/main/resources/mappers/UsuarioMapper.xml | 14 ++ src/main/resources/mybatis-config-h2.xml | 4 + src/main/resources/mybatis-config.xml | 2 + src/main/webapp/consultaIniciativas.xhtml | 59 ++++++++ src/main/webapp/index.xhtml | 16 +++ src/main/webapp/informeIniciativa.xhtml | 132 ++++++++++++++++++ src/main/webapp/registrarIniciativa.xhtml | 123 ++++++++-------- src/main/webapp/visualizarIniciativas.xhtml | 7 + .../webapp/visualizarIniciativasPersona.xhtml | 38 +++++ tables.sql | 20 ++- 26 files changed, 731 insertions(+), 65 deletions(-) create mode 100644 src/main/java/edu/eci/cvds/entities/Iniciativa.java create mode 100644 src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java create mode 100644 src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisIniciativaDAO.java create mode 100644 src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java create mode 100644 src/main/java/edu/eci/cvds/view/AdminBean.java create mode 100644 src/main/java/edu/eci/cvds/view/IniciativaBean.java create mode 100644 src/main/resources/mappers/IniciativaMapper.xml create mode 100644 src/main/webapp/consultaIniciativas.xhtml create mode 100644 src/main/webapp/informeIniciativa.xhtml diff --git a/pom.xml b/pom.xml index cdafb8a..474aaa9 100644 --- a/pom.xml +++ b/pom.xml @@ -251,7 +251,7 @@ tomcat7-maven-plugin 2.2 - 8080 + 8083 / diff --git a/src/main/java/edu/eci/cvds/entities/Iniciativa.java b/src/main/java/edu/eci/cvds/entities/Iniciativa.java new file mode 100644 index 0000000..1673235 --- /dev/null +++ b/src/main/java/edu/eci/cvds/entities/Iniciativa.java @@ -0,0 +1,114 @@ +package edu.eci.cvds.entities; + +import java.util.ArrayList; +import java.util.Date; + +public class Iniciativa { + private Integer id; + private String nombre; + private String estado; + private Integer numVotos; + private Usuario proponente; + private String area; + private Date fechaCreacion; + private Date fechaFin; + private String descripcion; + + public Iniciativa(Integer id, String nombre, String estado, Integer numVotos, Usuario proponente, String area, Date fechaCreacion, Date fechaFin, String descripcion) { + this.id = id; + this.nombre = nombre; + this.estado = estado; + this.numVotos = numVotos; + this.proponente = proponente; + this.area = area; + this.fechaCreacion = fechaCreacion; + this.fechaFin = fechaFin; + this.descripcion = descripcion; + } + + public void setId(Integer id) { + this.id = id; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public void setEstado(String estado) { + this.estado = estado; + } + + public void setNumVotos(Integer numVotos) { + this.numVotos = numVotos; + } + + public void setProponente(Usuario proponente) { + this.proponente = proponente; + } + + public void setArea(String area) { + this.area = area; + } + + public void setFechaCreacion(Date fechaCreacion) { + this.fechaCreacion = fechaCreacion; + } + + public void setFechaFin(Date fechaFin) { + this.fechaFin = fechaFin; + } + + public String getDescripcion() { + return descripcion; + } + + public void setDescripcion(String descripcion) { + this.descripcion = descripcion; + } + + public Integer getId() { + return id; + } + + public String getNombre() { + return nombre; + } + + public String getEstado() { + return estado; + } + + public Integer getNumVotos() { + return numVotos; + } + + public Usuario getProponente() { + return proponente; + } + + public String getArea() { + return area; + } + + public Date getFechaCreacion() { + return fechaCreacion; + } + + public Date getFechaFin() { + return fechaFin; + } + + @Override + public String toString() { + return "Iniciativa{" + + "id=" + id + + ", nombre='" + nombre + '\'' + + ", estado='" + estado + '\'' + + ", numVotos=" + numVotos + + ", proponente=" + proponente + + ", area='" + area + '\'' + + ", fechaCreacion=" + fechaCreacion + + ", fechaFin=" + fechaFin + + '}'; + } +} diff --git a/src/main/java/edu/eci/cvds/entities/Usuario.java b/src/main/java/edu/eci/cvds/entities/Usuario.java index 0baa2f8..2c469b1 100644 --- a/src/main/java/edu/eci/cvds/entities/Usuario.java +++ b/src/main/java/edu/eci/cvds/entities/Usuario.java @@ -13,6 +13,7 @@ private Usuario(String nombre, String correo, String contraseña, String rol){ this.rol = rol; } + public void setNombre(String nombre) { this.nombre = nombre; } diff --git a/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java b/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java index 6d8431c..eed4c3b 100644 --- a/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java +++ b/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java @@ -35,6 +35,7 @@ protected void initialize() { // TODO Add service class associated to Stub implementation bind(ServiciosBancoDeProyectos.class).to(ServiciosBancoDeProyectosImpl.class); bind(UsuarioDAO.class).to(MyBatisUsuarioDAO.class); + bind(IniciativaDAO.class).to(MyBatisIniciativaDAO.class); bind(SessionLogger.class).to(ShiroSession.class); } diff --git a/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java b/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java new file mode 100644 index 0000000..f6ff61b --- /dev/null +++ b/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java @@ -0,0 +1,15 @@ +package edu.eci.cvds.persistence; + +import edu.eci.cvds.entities.Iniciativa; +import org.apache.ibatis.exceptions.PersistenceException; + + +public interface IniciativaDAO { + + void insertarIniciativa(Iniciativa iniciativa) throws PersistenceException; + + public Iniciativa consultarIniciativa(Integer id) throws PersistenceException; + + + +} diff --git a/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java b/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java index d5ea06a..e8d80c4 100644 --- a/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java +++ b/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java @@ -1,10 +1,15 @@ package edu.eci.cvds.persistence; import edu.eci.cvds.entities.Usuario; +import edu.eci.cvds.services.ExcepcionBancoDeProyectos; import org.apache.ibatis.exceptions.PersistenceException; +import java.util.List; + public interface UsuarioDAO { void insertarUsuario(Usuario usuario) throws PersistenceException; - public Usuario consultarUsuario(String correo) throws PersistenceException; + public Usuario consultarUsuario(String correo) throws PersistenceException; + public List consultarUsuarios() throws PersistenceException; + public void updateUsuario(String correo, String rol) throws Exception; } diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisIniciativaDAO.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisIniciativaDAO.java new file mode 100644 index 0000000..a3e8b88 --- /dev/null +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisIniciativaDAO.java @@ -0,0 +1,32 @@ +package edu.eci.cvds.persistence.mybatisimpl; + +import com.google.inject.Inject; +import edu.eci.cvds.entities.Iniciativa; +import edu.eci.cvds.persistence.IniciativaDAO; +import edu.eci.cvds.persistence.mybatisimpl.mappers.IniciativaMapper; +import edu.eci.cvds.persistence.mybatisimpl.mappers.UsuarioMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.exceptions.PersistenceException; + +public class MyBatisIniciativaDAO implements IniciativaDAO { + @Inject + private IniciativaMapper iniciativaMapper; + + @Override + public void insertarIniciativa(Iniciativa iniciativa) throws PersistenceException { + try { + iniciativaMapper.insertarIniciativa(iniciativa); + } catch (org.apache.ibatis.exceptions.PersistenceException e) { + throw new PersistenceException("Error (P) al registrar iniciativa " + iniciativa.toString(), e); + } + } + + @Override + public Iniciativa consultarIniciativa(Integer id) throws PersistenceException { + try { + return iniciativaMapper.consultarIniciativa(id); + } catch (org.apache.ibatis.exceptions.PersistenceException e) { + throw new PersistenceException("Error (P) al consultar iniciativa: " + id, e); + } + } +} diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisUsuarioDAO.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisUsuarioDAO.java index d70ca96..2b8ab7f 100644 --- a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisUsuarioDAO.java +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisUsuarioDAO.java @@ -33,5 +33,23 @@ public Usuario consultarUsuario(String correo) throws PersistenceException { } + @Override + public List consultarUsuarios() throws PersistenceException { + try { + return usuarioMapper.consultarUsuarios(); + } catch (org.apache.ibatis.exceptions.PersistenceException e) { + throw new PersistenceException("Error (P) al consultar el usuarios: ", e); + } + } + + @Override + public void updateUsuario(String correo, String rol) throws Exception { + try { + usuarioMapper.updateUsuario(correo,rol); + } catch (org.apache.ibatis.exceptions.PersistenceException e) { + throw new PersistenceException("Error en actulizacion de rol de: " + correo, e); + } + } + } diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java new file mode 100644 index 0000000..bc1aafb --- /dev/null +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java @@ -0,0 +1,12 @@ +package edu.eci.cvds.persistence.mybatisimpl.mappers; + +import edu.eci.cvds.entities.Iniciativa; +import org.apache.ibatis.annotations.Param; + +public interface IniciativaMapper { + + public void insertarIniciativa(@Param("iniciativa") Iniciativa iniciativa); + + public Iniciativa consultarIniciativa(@Param("id") Integer id); + +} diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java index 0df43e2..7e3c95f 100644 --- a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java @@ -1,7 +1,5 @@ package edu.eci.cvds.persistence.mybatisimpl.mappers; - - import java.util.List; import org.apache.ibatis.annotations.Param; import edu.eci.cvds.entities.Usuario; @@ -12,4 +10,8 @@ public interface UsuarioMapper { public Usuario consultarUsuario(@Param("correo") String correo); + public List consultarUsuarios(); + + public void updateUsuario(@Param("correo") String correo, @Param("rol") String rol); + } diff --git a/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectos.java b/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectos.java index 63438fa..8266469 100644 --- a/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectos.java +++ b/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectos.java @@ -1,9 +1,23 @@ package edu.eci.cvds.services; +import edu.eci.cvds.entities.Iniciativa; import edu.eci.cvds.entities.Usuario; +import java.util.List; + + public interface ServiciosBancoDeProyectos { - public abstract void registrarUsuario(Usuario u) throws ExcepcionBancoDeProyectos; + + public abstract void registrarUsuario(Usuario u) throws ExcepcionBancoDeProyectos; public abstract Usuario consultarUsuario(String correo) throws ExcepcionBancoDeProyectos; + + public abstract List consultarUsuarios() throws ExcepcionBancoDeProyectos; + + public abstract void updateUsuario(String correo,String rol) throws Exception; + + public abstract Iniciativa consultarIniciativa(Integer id) throws ExcepcionBancoDeProyectos; + + public abstract void registrarIniciativa(Iniciativa i) throws ExcepcionBancoDeProyectos; + } diff --git a/src/main/java/edu/eci/cvds/services/ServiciosReservaFactory.java b/src/main/java/edu/eci/cvds/services/ServiciosReservaFactory.java index b14a750..290699a 100644 --- a/src/main/java/edu/eci/cvds/services/ServiciosReservaFactory.java +++ b/src/main/java/edu/eci/cvds/services/ServiciosReservaFactory.java @@ -25,6 +25,7 @@ protected void initialize() { install(JdbcHelper.PostgreSQL); setClassPathResource(pathResource); bind(UsuarioDAO.class).to(MyBatisUsuarioDAO.class); + bind(IniciativaDAO.class).to(MyBatisIniciativaDAO.class); bind(ServiciosBancoDeProyectos.class).to(ServiciosBancoDeProyectosImpl.class); } }); diff --git a/src/main/java/edu/eci/cvds/services/impl/ServiciosBancoDeProyectosImpl.java b/src/main/java/edu/eci/cvds/services/impl/ServiciosBancoDeProyectosImpl.java index 7afffbc..fafeaaf 100644 --- a/src/main/java/edu/eci/cvds/services/impl/ServiciosBancoDeProyectosImpl.java +++ b/src/main/java/edu/eci/cvds/services/impl/ServiciosBancoDeProyectosImpl.java @@ -8,11 +8,14 @@ import org.apache.ibatis.exceptions.PersistenceException; import org.mybatis.guice.transactional.Transactional; +import java.util.List; + public class ServiciosBancoDeProyectosImpl implements ServiciosBancoDeProyectos { @Inject private UsuarioDAO usuarioDAO; + private IniciativaDAO iniciativaDAO; // Usuarios @@ -32,7 +35,7 @@ public void registrarUsuario(Usuario usuario) throws ExcepcionBancoDeProyectos { @Override public Usuario consultarUsuario(String correo) throws ExcepcionBancoDeProyectos { - if (correo == "") + if (correo == null) throw new ExcepcionBancoDeProyectos("El numero de documento es inválido"); try { return usuarioDAO.consultarUsuario(correo); @@ -40,4 +43,37 @@ public Usuario consultarUsuario(String correo) throws ExcepcionBancoDeProyectos throw new ExcepcionBancoDeProyectos("Error al consultar el usuario" + correo, e); } } + + @Override + public List consultarUsuarios() throws ExcepcionBancoDeProyectos { + return usuarioDAO.consultarUsuarios(); + } + + @Override + public void updateUsuario(String correo, String rol) throws Exception { + usuarioDAO.updateUsuario(correo, rol); + } + + @Override + public Iniciativa consultarIniciativa(Integer id) throws ExcepcionBancoDeProyectos { + if (id < 0) + throw new ExcepcionBancoDeProyectos("El numero de ID inválido"); + try { + return iniciativaDAO.consultarIniciativa(id); + } catch (PersistenceException e) { + throw new ExcepcionBancoDeProyectos("Error al consultar iniciativa" + id, e); + } + } + + @Override + public void registrarIniciativa(Iniciativa iniciativa) throws ExcepcionBancoDeProyectos { + if (iniciativa == null) + throw new ExcepcionBancoDeProyectos("Error al registrar iniciativa"); + + try { + iniciativaDAO.insertarIniciativa(iniciativa); + } catch (PersistenceException e) { + throw new ExcepcionBancoDeProyectos("Error al registrar iniciativa " + iniciativa.getId(), e); + } + } } diff --git a/src/main/java/edu/eci/cvds/view/AdminBean.java b/src/main/java/edu/eci/cvds/view/AdminBean.java new file mode 100644 index 0000000..c1aed1a --- /dev/null +++ b/src/main/java/edu/eci/cvds/view/AdminBean.java @@ -0,0 +1,45 @@ +package edu.eci.cvds.view; + +import edu.eci.cvds.entities.Usuario; +import edu.eci.cvds.services.ServiciosBancoDeProyectos; +import com.google.inject.Inject; + +import javax.faces.application.FacesMessage; +import javax.faces.context.FacesContext; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import static edu.eci.cvds.view.LoginBean.setErrorMessage; + +public class AdminBean extends BasePageBean { + + private List roles = new ArrayList<>(Arrays.asList("Admin", "Pmo","Proponente")); + private List listUsuarios = null; + + @Inject + private ServiciosBancoDeProyectos serviciosBancoIniciativa; + + public List consultarUsuarios() { + + try { + listUsuarios = serviciosBancoIniciativa.consultarUsuarios(); + } catch (Exception ex) { + setErrorMessage(ex); + } + return listUsuarios; + } + + public void updateUsuario(String correo, String rol) { + + try { + serviciosBancoIniciativa.updateUsuario(correo,rol); + FacesMessage msg; + msg = new FacesMessage("Actualizado"); + FacesContext.getCurrentInstance().addMessage(null, msg); + } catch (Exception ex) { + setErrorMessage(ex); + } + } + +} diff --git a/src/main/java/edu/eci/cvds/view/IniciativaBean.java b/src/main/java/edu/eci/cvds/view/IniciativaBean.java new file mode 100644 index 0000000..548c189 --- /dev/null +++ b/src/main/java/edu/eci/cvds/view/IniciativaBean.java @@ -0,0 +1,24 @@ +package edu.eci.cvds.view; + +import edu.eci.cvds.entities.Iniciativa; +import edu.eci.cvds.entities.Usuario; + +import javax.faces.application.FacesMessage; +import javax.faces.bean.ManagedBean; +import javax.faces.context.FacesContext; +import java.util.Date; + +@ManagedBean(name="IniciativaBean") + +public class IniciativaBean extends BasePageBean { + + public void insertarIniciativa (Integer id, String nombre, String estado, Integer numVotos, Usuario proponente, String area, Date fechaCreacion, Date fechaFin,String descripcion) throws Exception { + + Iniciativa iniciativa = new Iniciativa(id, nombre, estado, numVotos,proponente,area,fechaCreacion,fechaFin,descripcion); + FacesMessage msg; + msg = new FacesMessage("Iniciativa Insertada Exitosamente"); + FacesContext.getCurrentInstance().addMessage(null, msg); + + } + +} diff --git a/src/main/resources/mappers/IniciativaMapper.xml b/src/main/resources/mappers/IniciativaMapper.xml new file mode 100644 index 0000000..9e3a679 --- /dev/null +++ b/src/main/resources/mappers/IniciativaMapper.xml @@ -0,0 +1,49 @@ + + + + + + INSERT INTO INICIATIVA + VALUES ( + #{iniciativa.id}, + #{iniciativa.nombre}, + #{iniciativa.estado}, + #{iniciativa.numVotos}, + #{iniciativa.usuarioProponente}, + #{iniciativa.area}, + #{iniciativa.fechaCreacion}, + #{iniciativa.fechaFin} + #{iniciativa.descripcion} + ) + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mappers/UsuarioMapper.xml b/src/main/resources/mappers/UsuarioMapper.xml index 6fa3cc4..f997b50 100644 --- a/src/main/resources/mappers/UsuarioMapper.xml +++ b/src/main/resources/mappers/UsuarioMapper.xml @@ -26,6 +26,20 @@ WHERE u.correo=#{correo} + + + + UPDATE USUARIOS + SET rol=#{rol} + WHERE correo=#{correo}; + + + diff --git a/src/main/resources/mybatis-config-h2.xml b/src/main/resources/mybatis-config-h2.xml index 1dc38fe..897fadd 100644 --- a/src/main/resources/mybatis-config-h2.xml +++ b/src/main/resources/mybatis-config-h2.xml @@ -6,6 +6,8 @@ + + @@ -23,6 +25,8 @@ + + \ No newline at end of file diff --git a/src/main/resources/mybatis-config.xml b/src/main/resources/mybatis-config.xml index 191103d..e17660c 100644 --- a/src/main/resources/mybatis-config.xml +++ b/src/main/resources/mybatis-config.xml @@ -7,6 +7,7 @@ + @@ -23,6 +24,7 @@ + diff --git a/src/main/webapp/consultaIniciativas.xhtml b/src/main/webapp/consultaIniciativas.xhtml new file mode 100644 index 0000000..6b192a4 --- /dev/null +++ b/src/main/webapp/consultaIniciativas.xhtml @@ -0,0 +1,59 @@ + + + + + + + + Servicios cliente + + + + + + + + + + Clientes + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ \ No newline at end of file diff --git a/src/main/webapp/index.xhtml b/src/main/webapp/index.xhtml index b9b4e38..b320476 100644 --- a/src/main/webapp/index.xhtml +++ b/src/main/webapp/index.xhtml @@ -50,7 +50,23 @@ lang="es"> + + + + + + + + + + diff --git a/src/main/webapp/informeIniciativa.xhtml b/src/main/webapp/informeIniciativa.xhtml new file mode 100644 index 0000000..4e0a799 --- /dev/null +++ b/src/main/webapp/informeIniciativa.xhtml @@ -0,0 +1,132 @@ + + + + + + + + + + + + Banco de proyectos ECI - Cuenta + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+

INFORME INICIATIVAS

+ Proyecto CVDS 2020 +
+
+
+
+
+ + + + Aquí va el contenido de Iniciativa con sus graficas emplimentar boton de descarga PDF + + + + +
+ + +
+
+
+
+ + + + +
+
+
+
+ + + + +
+ + \ No newline at end of file diff --git a/src/main/webapp/registrarIniciativa.xhtml b/src/main/webapp/registrarIniciativa.xhtml index b6a2843..af71a0c 100644 --- a/src/main/webapp/registrarIniciativa.xhtml +++ b/src/main/webapp/registrarIniciativa.xhtml @@ -1,12 +1,12 @@ + lang="es"> @@ -52,14 +52,21 @@ lang="es"> - + + + + + @@ -86,11 +93,11 @@ lang="es">
- - - - - + + + + +
@@ -123,10 +130,10 @@ lang="es"> - - - - + + + +
@@ -137,70 +144,70 @@ lang="es">

- - - - + + + +
- +
- - Iniciativa seleccionada - - - - + + Iniciativa seleccionada + + + + - - - + + + - + - - - - + + + +
- - Iniciativas existentes - - - - - + Iniciativas existentes + + + + + - - - + + + - - - + + + - +
- - + +
@@ -213,7 +220,7 @@ lang="es">
@@ -235,4 +242,4 @@ lang="es"> - + \ No newline at end of file diff --git a/src/main/webapp/visualizarIniciativas.xhtml b/src/main/webapp/visualizarIniciativas.xhtml index d136be7..9625a82 100644 --- a/src/main/webapp/visualizarIniciativas.xhtml +++ b/src/main/webapp/visualizarIniciativas.xhtml @@ -59,6 +59,13 @@ lang="es"> Administrar Iniciativas + + + + + +
+ + +
+ +
+ + + + Iniciativas disponibles + + + + + + + + + + + + + + + + + + + +
+
+ + +
diff --git a/tables.sql b/tables.sql index 6a22f7a..0f67aec 100644 --- a/tables.sql +++ b/tables.sql @@ -3,6 +3,24 @@ CREATE TABLE Usuarios ( correo varchar(150) NOT NULL, contraseña varchar(50) NOT NULL, estado varchar(10) NOT NULL, - rol varchar(15) NOT NULL, + rol varchar(15), CONSTRAINT Usuarios_pk PRIMARY KEY (correo) ); + +CREATE TABLE Iniciativa ( + id int NOT NULL, + nombre varchar(150) NOT NULL, + estado varchar(50) NOT NULL, + numVotos int NOT NULL, + usuarioProponente varchar(150), + area varchar(50) NOT NULL, + fechaCreacion date NOT NULL, + fechaFin date NOT NULL, + descripcion varchar(360) NOT NULL, + CONSTRAINT Iniciativa_pk PRIMARY KEY (id) +); + +ALTER TABLE Iniciativa ADD CONSTRAINT Iniciativa_usuario + FOREIGN KEY (usuarioProponente) + REFERENCES Usuarios(correo); + From 3572a03a93695251408c375956cea86ad707d6e3 Mon Sep 17 00:00:00 2001 From: lale1507 Date: Mon, 13 Apr 2020 22:50:26 -0500 Subject: [PATCH 02/15] Iniciativa y Asignacion Rol Backend cambios --- src/main/webapp/consultaIniciativas.xhtml | 59 ----------------------- 1 file changed, 59 deletions(-) delete mode 100644 src/main/webapp/consultaIniciativas.xhtml diff --git a/src/main/webapp/consultaIniciativas.xhtml b/src/main/webapp/consultaIniciativas.xhtml deleted file mode 100644 index 6b192a4..0000000 --- a/src/main/webapp/consultaIniciativas.xhtml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - Servicios cliente - - - - - - - - - - Clientes - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-
- \ No newline at end of file From ee7ac31bd9607ecd1ac32efbb2813df2860acb26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davor=20Cort=C3=A9s?= Date: Mon, 13 Apr 2020 23:49:13 -0500 Subject: [PATCH 03/15] Mappers, entities fix solved --- .../java/edu/eci/cvds/beans/BasePageBean.java | 4 ---- .../java/edu/eci/cvds/beans/LoginBean.java | 4 ---- .../java/edu/eci/cvds/entities/Estado.java | 5 ++++ src/main/java/edu/eci/cvds/entities/Rol.java | 5 ++++ .../java/edu/eci/cvds/entities/Usuario.java | 23 +++++++++++++++---- src/main/resources/mappers/UsuarioMapper.xml | 8 +++---- src/main/resources/mybatis-config-h2.xml | 5 ++++ src/main/resources/mybatis-config.xml | 5 ++++ src/test/java/LoginTest.java | 4 ++++ 9 files changed, 46 insertions(+), 17 deletions(-) delete mode 100644 src/main/java/edu/eci/cvds/beans/BasePageBean.java delete mode 100644 src/main/java/edu/eci/cvds/beans/LoginBean.java create mode 100644 src/main/java/edu/eci/cvds/entities/Estado.java create mode 100644 src/main/java/edu/eci/cvds/entities/Rol.java create mode 100644 src/test/java/LoginTest.java diff --git a/src/main/java/edu/eci/cvds/beans/BasePageBean.java b/src/main/java/edu/eci/cvds/beans/BasePageBean.java deleted file mode 100644 index 526cd25..0000000 --- a/src/main/java/edu/eci/cvds/beans/BasePageBean.java +++ /dev/null @@ -1,4 +0,0 @@ -package edu.eci.cvds.beans; - -public abstract class BasePageBean { -} diff --git a/src/main/java/edu/eci/cvds/beans/LoginBean.java b/src/main/java/edu/eci/cvds/beans/LoginBean.java deleted file mode 100644 index 4815992..0000000 --- a/src/main/java/edu/eci/cvds/beans/LoginBean.java +++ /dev/null @@ -1,4 +0,0 @@ -package edu.eci.cvds.beans; - -public class LoginBean extends BasePageBean { -} diff --git a/src/main/java/edu/eci/cvds/entities/Estado.java b/src/main/java/edu/eci/cvds/entities/Estado.java new file mode 100644 index 0000000..1a15f8e --- /dev/null +++ b/src/main/java/edu/eci/cvds/entities/Estado.java @@ -0,0 +1,5 @@ +package edu.eci.cvds.entities; + +public enum Estado { + ACTIVO, INACTIVO +} diff --git a/src/main/java/edu/eci/cvds/entities/Rol.java b/src/main/java/edu/eci/cvds/entities/Rol.java new file mode 100644 index 0000000..bc9366e --- /dev/null +++ b/src/main/java/edu/eci/cvds/entities/Rol.java @@ -0,0 +1,5 @@ +package edu.eci.cvds.entities; + +public enum Rol { + ADMINISTRADOR, PERSONAL_PMO, PROPONENTE, PUBLICO +} diff --git a/src/main/java/edu/eci/cvds/entities/Usuario.java b/src/main/java/edu/eci/cvds/entities/Usuario.java index 0baa2f8..d2b4456 100644 --- a/src/main/java/edu/eci/cvds/entities/Usuario.java +++ b/src/main/java/edu/eci/cvds/entities/Usuario.java @@ -4,13 +4,17 @@ public class Usuario{ private String nombre; private String correo; private String contraseña; - private String rol; + private Rol rol; + private Estado estado; - private Usuario(String nombre, String correo, String contraseña, String rol){ + public Usuario(){} + + public Usuario(String nombre, String correo, String contraseña, Rol rol, Estado estado){ this.nombre = nombre; this.correo = correo; this.contraseña = contraseña; this.rol = rol; + this.estado = estado; } public void setNombre(String nombre) { @@ -25,7 +29,7 @@ public void setCorreo(String correo) { this.contraseña = contraseña; } - public void setRol(String rol) { + public void setRol(Rol rol) { this.rol = rol; } @@ -41,17 +45,26 @@ public String getCorreo() { return contraseña; } - public String getRol() { + public Rol getRol() { return rol; } + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + @Override public String toString() { return "Usuario{" + "nombre='" + nombre + '\'' + ", correo='" + correo + '\'' + ", contraseña='" + contraseña + '\'' + - ", rol='" + rol + '\'' + + ", rol='" + rol.name() + '\'' + + ", estado='" + estado.name() + '\'' + '}'; } } diff --git a/src/main/resources/mappers/UsuarioMapper.xml b/src/main/resources/mappers/UsuarioMapper.xml index 6fa3cc4..828f522 100644 --- a/src/main/resources/mappers/UsuarioMapper.xml +++ b/src/main/resources/mappers/UsuarioMapper.xml @@ -10,8 +10,8 @@ #{usuario.correo}, #{usuario.contraseña}, #{usuario.nombre}, - #{usuario.rol}, - #{usuario.estado} + #{usuario.rol, typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler}, + #{usuario.estado, typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler} ) @@ -31,8 +31,8 @@ - - + + diff --git a/src/main/resources/mybatis-config-h2.xml b/src/main/resources/mybatis-config-h2.xml index 1dc38fe..04981cf 100644 --- a/src/main/resources/mybatis-config-h2.xml +++ b/src/main/resources/mybatis-config-h2.xml @@ -8,6 +8,11 @@ + + + + diff --git a/src/main/resources/mybatis-config.xml b/src/main/resources/mybatis-config.xml index 191103d..b4521a0 100644 --- a/src/main/resources/mybatis-config.xml +++ b/src/main/resources/mybatis-config.xml @@ -9,6 +9,11 @@ + + + + diff --git a/src/test/java/LoginTest.java b/src/test/java/LoginTest.java new file mode 100644 index 0000000..0ba0b03 --- /dev/null +++ b/src/test/java/LoginTest.java @@ -0,0 +1,4 @@ +public class LoginTest { + + +} \ No newline at end of file From 63f3ebc7a6f0ed74b671acec4098afe96f07eb28 Mon Sep 17 00:00:00 2001 From: lale1507 Date: Tue, 14 Apr 2020 11:30:18 -0500 Subject: [PATCH 04/15] Actualizacion Iniciativa --- .../eci/cvds/entities/EstadoIniciativa.java | 5 + .../edu/eci/cvds/entities/Iniciativa.java | 58 +++++-- .../edu/eci/cvds/view/IniciativaBean.java | 6 +- .../resources/mappers/IniciativaMapper.xml | 16 +- tables.sql | 154 ++++++++++++++++-- 5 files changed, 209 insertions(+), 30 deletions(-) create mode 100644 src/main/java/edu/eci/cvds/entities/EstadoIniciativa.java diff --git a/src/main/java/edu/eci/cvds/entities/EstadoIniciativa.java b/src/main/java/edu/eci/cvds/entities/EstadoIniciativa.java new file mode 100644 index 0000000..3dc5eeb --- /dev/null +++ b/src/main/java/edu/eci/cvds/entities/EstadoIniciativa.java @@ -0,0 +1,5 @@ +package edu.eci.cvds.entities; + +public enum EstadoIniciativa { + ESPERA,REVISION,PROYECTO,SOLUCIONADO +} diff --git a/src/main/java/edu/eci/cvds/entities/Iniciativa.java b/src/main/java/edu/eci/cvds/entities/Iniciativa.java index 1673235..dcaf93f 100644 --- a/src/main/java/edu/eci/cvds/entities/Iniciativa.java +++ b/src/main/java/edu/eci/cvds/entities/Iniciativa.java @@ -6,24 +6,30 @@ public class Iniciativa { private Integer id; private String nombre; - private String estado; - private Integer numVotos; + private EstadoIniciativa estado; + private ArrayList votos; + private ArrayList palabrasClave; + private ArrayList interesados; private Usuario proponente; private String area; private Date fechaCreacion; private Date fechaFin; private String descripcion; + private ArrayList integrantesDelProyecto; - public Iniciativa(Integer id, String nombre, String estado, Integer numVotos, Usuario proponente, String area, Date fechaCreacion, Date fechaFin, String descripcion) { + public Iniciativa(Integer id, String nombre, EstadoIniciativa estado, ArrayList votos,ArrayList palabrasClave, ArrayList interesados,Usuario proponente, String area, Date fechaCreacion, Date fechaFin, String descripcion,ArrayList integrantesDelProyecto) { this.id = id; this.nombre = nombre; this.estado = estado; - this.numVotos = numVotos; + this.votos = votos; + this.palabrasClave = palabrasClave; + this.interesados = interesados; this.proponente = proponente; this.area = area; this.fechaCreacion = fechaCreacion; this.fechaFin = fechaFin; this.descripcion = descripcion; + this.integrantesDelProyecto = integrantesDelProyecto; } public void setId(Integer id) { @@ -34,12 +40,12 @@ public void setNombre(String nombre) { this.nombre = nombre; } - public void setEstado(String estado) { + public void setEstado(EstadoIniciativa estado) { this.estado = estado; } public void setNumVotos(Integer numVotos) { - this.numVotos = numVotos; + this.votos = votos; } public void setProponente(Usuario proponente) { @@ -58,6 +64,38 @@ public void setFechaFin(Date fechaFin) { this.fechaFin = fechaFin; } + public ArrayList getVotos() { + return votos; + } + + public void setVotos(ArrayList votos) { + this.votos = votos; + } + + public ArrayList getPalabrasClave() { + return palabrasClave; + } + + public void setPalabrasClave(ArrayList palabrasClave) { + this.palabrasClave = palabrasClave; + } + + public ArrayList getInteresados() { + return interesados; + } + + public void setInteresados(ArrayList interesados) { + this.interesados = interesados; + } + + public ArrayList getIntegrantesDelProyecto() { + return integrantesDelProyecto; + } + + public void setIntegrantesDelProyecto(ArrayList integrantesDelProyecto) { + this.integrantesDelProyecto = integrantesDelProyecto; + } + public String getDescripcion() { return descripcion; } @@ -74,12 +112,12 @@ public String getNombre() { return nombre; } - public String getEstado() { + public EstadoIniciativa getEstado() { return estado; } - public Integer getNumVotos() { - return numVotos; + public ArrayList getNumVotos() { + return votos; } public Usuario getProponente() { @@ -104,7 +142,7 @@ public String toString() { "id=" + id + ", nombre='" + nombre + '\'' + ", estado='" + estado + '\'' + - ", numVotos=" + numVotos + + ", numVotos=" + votos + ", proponente=" + proponente + ", area='" + area + '\'' + ", fechaCreacion=" + fechaCreacion + diff --git a/src/main/java/edu/eci/cvds/view/IniciativaBean.java b/src/main/java/edu/eci/cvds/view/IniciativaBean.java index 548c189..eb72e9f 100644 --- a/src/main/java/edu/eci/cvds/view/IniciativaBean.java +++ b/src/main/java/edu/eci/cvds/view/IniciativaBean.java @@ -1,20 +1,22 @@ package edu.eci.cvds.view; +import edu.eci.cvds.entities.EstadoIniciativa; import edu.eci.cvds.entities.Iniciativa; import edu.eci.cvds.entities.Usuario; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.context.FacesContext; +import java.util.ArrayList; import java.util.Date; @ManagedBean(name="IniciativaBean") public class IniciativaBean extends BasePageBean { - public void insertarIniciativa (Integer id, String nombre, String estado, Integer numVotos, Usuario proponente, String area, Date fechaCreacion, Date fechaFin,String descripcion) throws Exception { + public void insertarIniciativa (Integer id, String nombre, EstadoIniciativa estado, ArrayList votos, ArrayList palabrasClave, ArrayList interesados, Usuario proponente, String area, Date fechaCreacion, Date fechaFin, String descripcion, ArrayList integrantesDelProyecto) throws Exception { - Iniciativa iniciativa = new Iniciativa(id, nombre, estado, numVotos,proponente,area,fechaCreacion,fechaFin,descripcion); + Iniciativa iniciativa = new Iniciativa(id, nombre, estado, votos, palabrasClave, interesados,proponente, area, fechaCreacion, fechaFin, descripcion,integrantesDelProyecto); FacesMessage msg; msg = new FacesMessage("Iniciativa Insertada Exitosamente"); FacesContext.getCurrentInstance().addMessage(null, msg); diff --git a/src/main/resources/mappers/IniciativaMapper.xml b/src/main/resources/mappers/IniciativaMapper.xml index 9e3a679..a48e149 100644 --- a/src/main/resources/mappers/IniciativaMapper.xml +++ b/src/main/resources/mappers/IniciativaMapper.xml @@ -10,12 +10,15 @@ #{iniciativa.id}, #{iniciativa.nombre}, #{iniciativa.estado}, - #{iniciativa.numVotos}, - #{iniciativa.usuarioProponente}, + #{iniciativa.votos}, + #{iniciativa.palabrasClave}, + #{iniciativa.interesados}, + #{iniciativa.proponente}, #{iniciativa.area}, #{iniciativa.fechaCreacion}, #{iniciativa.fechaFin} #{iniciativa.descripcion} + #{iniciativa.integrantesDelProyecto} ) @@ -25,12 +28,16 @@ i.id, i.nombre, i.estado, - i.numVotos, + i.votos, + i.palabrasClave, i.usuarioProponente, + i.nteresados, + i.proponente i.area, i.fechaCreacion, i.fechaFin, - i.descripcion + i.descripcion, + i.integrantesDelProyecto FROM USUARIOS AS i WHERE u.id=#{id} @@ -40,7 +47,6 @@ - diff --git a/tables.sql b/tables.sql index 0f67aec..e25f0dc 100644 --- a/tables.sql +++ b/tables.sql @@ -1,3 +1,55 @@ +-- Created by Vertabelo (http://vertabelo.com) +-- Last modification date: 2020-04-14 03:49:04.746 + +-- tables +-- Table: Comentarios +CREATE TABLE Comentarios ( + id int NOT NULL, + autor varchar(150) NOT NULL, + contenido varchar(500) NOT NULL, + fecha_creacion date NOT NULL, + iniciativa int NOT NULL, + CONSTRAINT Comentarios_pk PRIMARY KEY (id) +); + +-- Table: Estrellas +CREATE TABLE Estrellas ( + id int NOT NULL, + interesado varchar(150) NOT NULL, + Iniciativa int NOT NULL, + CONSTRAINT Estrellas_pk PRIMARY KEY (id) +); + +-- Table: Iniciativas +CREATE TABLE Iniciativas ( + id int NOT NULL, + nombre varchar(150) NOT NULL, + area Varchar(50) NOT NULL, + estado varchar(20) NOT NULL, + proponente varchar(150) NOT NULL, + fecha_creacion date NOT NULL, + fecha_finalizacion date NOT NULL, + descripcion varchar(360) NOT NULL, + CONSTRAINT Iniciativas_pk PRIMARY KEY (id) +); + +-- Table: Integrantes_Proyecto +CREATE TABLE Integrantes_Proyecto ( + id int NOT NULL, + integrante varchar(150) NOT NULL, + Iniciativa int NOT NULL, + CONSTRAINT Integrantes_Proyecto_pk PRIMARY KEY (id) +); + +-- Table: Palabras_clave +CREATE TABLE Palabras_clave ( + id int NOT NULL, + palabra_clave varchar(20) NOT NULL, + iniciativa int NOT NULL, + CONSTRAINT Palabras_clave_pk PRIMARY KEY (id) +); + + CREATE TABLE Usuarios ( nombre varchar(50) NOT NULL, correo varchar(150) NOT NULL, @@ -7,20 +59,96 @@ CREATE TABLE Usuarios ( CONSTRAINT Usuarios_pk PRIMARY KEY (correo) ); -CREATE TABLE Iniciativa ( +-- Table: Votos +CREATE TABLE Votos ( id int NOT NULL, - nombre varchar(150) NOT NULL, - estado varchar(50) NOT NULL, - numVotos int NOT NULL, - usuarioProponente varchar(150), - area varchar(50) NOT NULL, - fechaCreacion date NOT NULL, - fechaFin date NOT NULL, - descripcion varchar(360) NOT NULL, - CONSTRAINT Iniciativa_pk PRIMARY KEY (id) + Iniciativa int NOT NULL, + autor varchar(150) NOT NULL, + CONSTRAINT Votos_pk PRIMARY KEY (id) ); -ALTER TABLE Iniciativa ADD CONSTRAINT Iniciativa_usuario - FOREIGN KEY (usuarioProponente) - REFERENCES Usuarios(correo); +-- foreign keys +-- Reference: Comentarios_Usuarios (table: Comentarios) +ALTER TABLE Comentarios ADD CONSTRAINT Comentarios_Usuarios + FOREIGN KEY (autor) + REFERENCES Usuarios (correo) + NOT DEFERRABLE + INITIALLY IMMEDIATE +; + +-- Reference: Equipo_Proyectos_Usuarios (table: Integrantes_Proyecto) +ALTER TABLE Integrantes_Proyecto ADD CONSTRAINT Equipo_Proyectos_Usuarios + FOREIGN KEY (integrante) + REFERENCES Usuarios (correo) + NOT DEFERRABLE + INITIALLY IMMEDIATE +; + +-- Reference: Estrellas_Iniciativas (table: Estrellas) +ALTER TABLE Estrellas ADD CONSTRAINT Estrellas_Iniciativas + FOREIGN KEY (Iniciativa) + REFERENCES Iniciativas (id) + NOT DEFERRABLE + INITIALLY IMMEDIATE +; + +-- Reference: Grupo_Interes_Usuarios (table: Estrellas) +ALTER TABLE Estrellas ADD CONSTRAINT Grupo_Interes_Usuarios + FOREIGN KEY (interesado) + REFERENCES Usuarios (correo) + NOT DEFERRABLE + INITIALLY IMMEDIATE +; + +-- Reference: Iniciativas_Comentarios (table: Comentarios) +ALTER TABLE Comentarios ADD CONSTRAINT Iniciativas_Comentarios + FOREIGN KEY (iniciativa) + REFERENCES Iniciativas (id) + NOT DEFERRABLE + INITIALLY IMMEDIATE +; + +-- Reference: Iniciativas_Usuarios (table: Iniciativas) +ALTER TABLE Iniciativas ADD CONSTRAINT Iniciativas_Usuarios + FOREIGN KEY (proponente) + REFERENCES Usuarios (correo) + NOT DEFERRABLE + INITIALLY IMMEDIATE +; + +-- Reference: Integrantes_Proyecto_Iniciativas (table: Integrantes_Proyecto) +ALTER TABLE Integrantes_Proyecto ADD CONSTRAINT Integrantes_Proyecto_Iniciativas + FOREIGN KEY (Iniciativa) + REFERENCES Iniciativas (id) + NOT DEFERRABLE + INITIALLY IMMEDIATE +; + +-- Reference: Palabras_clave_Iniciativas (table: Palabras_clave) +ALTER TABLE Palabras_clave ADD CONSTRAINT Palabras_clave_Iniciativas + FOREIGN KEY (iniciativa) + REFERENCES Iniciativas (id) + NOT DEFERRABLE + INITIALLY IMMEDIATE +; + +-- Reference: Usuarios_Votos (table: Votos) +ALTER TABLE Votos ADD CONSTRAINT Usuarios_Votos + FOREIGN KEY (autor) + REFERENCES Usuarios (correo) + NOT DEFERRABLE + INITIALLY IMMEDIATE +; + +-- Reference: Votos_Iniciativas (table: Votos) +ALTER TABLE Votos ADD CONSTRAINT Votos_Iniciativas + FOREIGN KEY (Iniciativa) + REFERENCES Iniciativas (id) + NOT DEFERRABLE + INITIALLY IMMEDIATE +; + + +-- End of file. + From cda75375e9dc029b6bc3ca0d61f0abdeb5beca18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davor=20Javier=20Cort=C3=A9s=20Cardozo?= <47872469+D4v0r@users.noreply.github.com> Date: Tue, 14 Apr 2020 11:56:33 -0500 Subject: [PATCH 05/15] fix --- tables.sql | 77 +++++++++++++++++++++++------------------------------- 1 file changed, 33 insertions(+), 44 deletions(-) diff --git a/tables.sql b/tables.sql index e25f0dc..b9a8b74 100644 --- a/tables.sql +++ b/tables.sql @@ -1,26 +1,11 @@ --- Created by Vertabelo (http://vertabelo.com) --- Last modification date: 2020-04-14 03:49:04.746 - --- tables --- Table: Comentarios -CREATE TABLE Comentarios ( - id int NOT NULL, - autor varchar(150) NOT NULL, - contenido varchar(500) NOT NULL, - fecha_creacion date NOT NULL, - iniciativa int NOT NULL, - CONSTRAINT Comentarios_pk PRIMARY KEY (id) -); - --- Table: Estrellas -CREATE TABLE Estrellas ( - id int NOT NULL, - interesado varchar(150) NOT NULL, - Iniciativa int NOT NULL, - CONSTRAINT Estrellas_pk PRIMARY KEY (id) +CREATE TABLE Usuarios ( + nombre varchar(50) NOT NULL, + correo varchar(150) NOT NULL, + contraseña varchar(50) NOT NULL, + estado varchar(10) NOT NULL, + rol varchar(15) NOT NULL, + CONSTRAINT Usuarios_pk PRIMARY KEY (correo) ); - --- Table: Iniciativas CREATE TABLE Iniciativas ( id int NOT NULL, nombre varchar(150) NOT NULL, @@ -33,15 +18,6 @@ CREATE TABLE Iniciativas ( CONSTRAINT Iniciativas_pk PRIMARY KEY (id) ); --- Table: Integrantes_Proyecto -CREATE TABLE Integrantes_Proyecto ( - id int NOT NULL, - integrante varchar(150) NOT NULL, - Iniciativa int NOT NULL, - CONSTRAINT Integrantes_Proyecto_pk PRIMARY KEY (id) -); - --- Table: Palabras_clave CREATE TABLE Palabras_clave ( id int NOT NULL, palabra_clave varchar(20) NOT NULL, @@ -49,17 +25,6 @@ CREATE TABLE Palabras_clave ( CONSTRAINT Palabras_clave_pk PRIMARY KEY (id) ); - -CREATE TABLE Usuarios ( - nombre varchar(50) NOT NULL, - correo varchar(150) NOT NULL, - contraseña varchar(50) NOT NULL, - estado varchar(10) NOT NULL, - rol varchar(15), - CONSTRAINT Usuarios_pk PRIMARY KEY (correo) -); - --- Table: Votos CREATE TABLE Votos ( id int NOT NULL, Iniciativa int NOT NULL, @@ -67,6 +32,32 @@ CREATE TABLE Votos ( CONSTRAINT Votos_pk PRIMARY KEY (id) ); +CREATE TABLE Comentarios ( + id int NOT NULL, + autor varchar(150) NOT NULL, + contenido varchar(500) NOT NULL, + fecha_creacion date NOT NULL, + iniciativa int NOT NULL, + CONSTRAINT Comentarios_pk PRIMARY KEY (id) +); + +-- Table: Estrellas +CREATE TABLE Estrellas ( + id int NOT NULL, + interesado varchar(150) NOT NULL, + Iniciativa int NOT NULL, + CONSTRAINT Estrellas_pk PRIMARY KEY (id) +); + +-- Table: Integrantes_Proyecto +CREATE TABLE Integrantes_Proyecto ( + id int NOT NULL, + integrante varchar(150) NOT NULL, + Iniciativa int NOT NULL, + CONSTRAINT Integrantes_Proyecto_pk PRIMARY KEY (id) +); + + -- foreign keys -- Reference: Comentarios_Usuarios (table: Comentarios) ALTER TABLE Comentarios ADD CONSTRAINT Comentarios_Usuarios @@ -149,6 +140,4 @@ ALTER TABLE Votos ADD CONSTRAINT Votos_Iniciativas ; --- End of file. - From 31607b11c83410201dccf9594b6b841732dffd4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20A=2E=20Bernal=20Hern=C3=A1ndez?= <55570658+lale1507@users.noreply.github.com> Date: Tue, 14 Apr 2020 15:49:56 -0500 Subject: [PATCH 06/15] Update pom.xml --- pom.xml | 43 +++---------------------------------------- 1 file changed, 3 insertions(+), 40 deletions(-) diff --git a/pom.xml b/pom.xml index 474aaa9..33623d8 100644 --- a/pom.xml +++ b/pom.xml @@ -85,11 +85,7 @@ postgresql 42.0.0 - - com.h2database - h2 - 1.4.191 - + @@ -211,47 +207,14 @@ - - org.codehaus.mojo - sql-maven-plugin - 1.5 - - - com.h2database - h2 - 1.4.184 - - - - org.h2.Driver - jdbc:h2:file:./target/db/testdb;MODE=PostgreSQL - sa - - false - - - - - create-db - process-test-resources - - execute - - - - tables.sql - - - - - + org.apache.tomcat.maven tomcat7-maven-plugin 2.2 - 8083 + 8090 / From af9a249399f63d562a7080f13dc9990aa0a51c3f Mon Sep 17 00:00:00 2001 From: lale1507 Date: Tue, 14 Apr 2020 23:26:01 -0500 Subject: [PATCH 07/15] Actualizacion Iniciativa. Revisar --- pom.xml | 2 +- .../java/edu/eci/GuiceContextListener.java | 46 ++++++++++ .../edu/eci/cvds/entities/Iniciativa.java | 89 +++++++++---------- .../eci/cvds/persistence/IniciativaDAO.java | 9 +- .../edu/eci/cvds/persistence/UsuarioDAO.java | 2 +- .../mybatisimpl/MyBatisIniciativaDAO.java | 21 +++-- .../mybatisimpl/MyBatisUsuarioDAO.java | 9 -- .../mybatisimpl/mappers/IniciativaMapper.java | 8 +- .../mybatisimpl/mappers/UsuarioMapper.java | 2 - .../services/ServiciosBancoDeProyectos.java | 13 ++- .../impl/ServiciosBancoDeProyectosImpl.java | 42 ++++----- .../java/edu/eci/cvds/view/AdminBean.java | 2 +- .../edu/eci/cvds/view/IniciativaBean.java | 11 ++- .../java/edu/eci/cvds/view/LoginBean.java | 46 +++++----- .../resources/mappers/IniciativaMapper.xml | 75 ++++++++++++++-- src/main/resources/mappers/UsuarioMapper.xml | 18 +--- src/main/resources/mybatis-config-h2.xml | 3 +- src/main/resources/mybatis-config.xml | 3 +- 18 files changed, 261 insertions(+), 140 deletions(-) create mode 100644 src/main/java/edu/eci/GuiceContextListener.java diff --git a/pom.xml b/pom.xml index 33623d8..0e833ab 100644 --- a/pom.xml +++ b/pom.xml @@ -214,7 +214,7 @@ tomcat7-maven-plugin 2.2 - 8090 + 8081 / diff --git a/src/main/java/edu/eci/GuiceContextListener.java b/src/main/java/edu/eci/GuiceContextListener.java new file mode 100644 index 0000000..ec88974 --- /dev/null +++ b/src/main/java/edu/eci/GuiceContextListener.java @@ -0,0 +1,46 @@ +package edu.eci; + +import javax.servlet.ServletContext; + + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; +import org.mybatis.guice.XMLMyBatisModule; +import org.mybatis.guice.datasource.helper.JdbcHelper; +import com.google.inject.Guice; +import com.google.inject.Injector; + +import edu.eci.cvds.authentication.SessionLogger; +import edu.eci.cvds.authentication.ShiroSession; +import edu.eci.cvds.persistence.*; +import edu.eci.cvds.persistence.mybatisimpl.*; +import edu.eci.cvds.services.ServiciosBancoDeProyectos; +import edu.eci.cvds.services.impl.ServiciosBancoDeProyectosImpl; + + +public class GuiceContextListener implements ServletContextListener { + + public void contextDestroyed(ServletContextEvent servletContextEvent) { + ServletContext servletContext = servletContextEvent.getServletContext(); + servletContext.removeAttribute(Injector.class.getName()); + } + + public void contextInitialized(ServletContextEvent servletContextEvent) { + Injector injector = Guice.createInjector(new XMLMyBatisModule() { + @Override + protected void initialize() { + install(JdbcHelper.PostgreSQL); + setEnvironmentId("development"); + setClassPathResource("mybatis-config.xml"); + // TODO Add service class associated to Stub implementation + bind(ServiciosBancoDeProyectos.class).to(ServiciosBancoDeProyectosImpl.class); + bind(UsuarioDAO.class).to(MyBatisUsuarioDAO.class); + bind(IniciativaDAO.class).to(MyBatisIniciativaDAO.class); + bind(SessionLogger.class).to(ShiroSession.class); + + } + }); + + servletContextEvent.getServletContext().setAttribute(Injector.class.getName(), injector); + } +} \ No newline at end of file diff --git a/src/main/java/edu/eci/cvds/entities/Iniciativa.java b/src/main/java/edu/eci/cvds/entities/Iniciativa.java index dcaf93f..ee15523 100644 --- a/src/main/java/edu/eci/cvds/entities/Iniciativa.java +++ b/src/main/java/edu/eci/cvds/entities/Iniciativa.java @@ -32,36 +32,28 @@ public Iniciativa(Integer id, String nombre, EstadoIniciativa estado, ArrayList< this.integrantesDelProyecto = integrantesDelProyecto; } - public void setId(Integer id) { - this.id = id; - } - - public void setNombre(String nombre) { - this.nombre = nombre; - } - - public void setEstado(EstadoIniciativa estado) { - this.estado = estado; + public Integer getId() { + return id; } - public void setNumVotos(Integer numVotos) { - this.votos = votos; + public void setId(Integer id) { + this.id = id; } - public void setProponente(Usuario proponente) { - this.proponente = proponente; + public String getNombre() { + return nombre; } - public void setArea(String area) { - this.area = area; + public void setNombre(String nombre) { + this.nombre = nombre; } - public void setFechaCreacion(Date fechaCreacion) { - this.fechaCreacion = fechaCreacion; + public EstadoIniciativa getEstado() { + return estado; } - public void setFechaFin(Date fechaFin) { - this.fechaFin = fechaFin; + public void setEstado(EstadoIniciativa estado) { + this.estado = estado; } public ArrayList getVotos() { @@ -88,52 +80,52 @@ public void setInteresados(ArrayList interesados) { this.interesados = interesados; } - public ArrayList getIntegrantesDelProyecto() { - return integrantesDelProyecto; + public Usuario getProponente() { + return proponente; } - public void setIntegrantesDelProyecto(ArrayList integrantesDelProyecto) { - this.integrantesDelProyecto = integrantesDelProyecto; + public void setProponente(Usuario proponente) { + this.proponente = proponente; } - public String getDescripcion() { - return descripcion; + public String getArea() { + return area; } - public void setDescripcion(String descripcion) { - this.descripcion = descripcion; + public void setArea(String area) { + this.area = area; } - public Integer getId() { - return id; + public Date getFechaCreacion() { + return fechaCreacion; } - public String getNombre() { - return nombre; + public void setFechaCreacion(Date fechaCreacion) { + this.fechaCreacion = fechaCreacion; } - public EstadoIniciativa getEstado() { - return estado; + public Date getFechaFin() { + return fechaFin; } - public ArrayList getNumVotos() { - return votos; + public void setFechaFin(Date fechaFin) { + this.fechaFin = fechaFin; } - public Usuario getProponente() { - return proponente; + public String getDescripcion() { + return descripcion; } - public String getArea() { - return area; + public void setDescripcion(String descripcion) { + this.descripcion = descripcion; } - public Date getFechaCreacion() { - return fechaCreacion; + public ArrayList getIntegrantesDelProyecto() { + return integrantesDelProyecto; } - public Date getFechaFin() { - return fechaFin; + public void setIntegrantesDelProyecto(ArrayList integrantesDelProyecto) { + this.integrantesDelProyecto = integrantesDelProyecto; } @Override @@ -141,12 +133,17 @@ public String toString() { return "Iniciativa{" + "id=" + id + ", nombre='" + nombre + '\'' + - ", estado='" + estado + '\'' + - ", numVotos=" + votos + + ", estado=" + estado + + ", votos=" + votos + + ", palabrasClave=" + palabrasClave + + ", interesados=" + interesados + ", proponente=" + proponente + ", area='" + area + '\'' + ", fechaCreacion=" + fechaCreacion + ", fechaFin=" + fechaFin + + ", descripcion='" + descripcion + '\'' + + ", integrantesDelProyecto=" + integrantesDelProyecto + '}'; } + } diff --git a/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java b/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java index f6ff61b..7debc8f 100644 --- a/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java +++ b/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java @@ -3,13 +3,18 @@ import edu.eci.cvds.entities.Iniciativa; import org.apache.ibatis.exceptions.PersistenceException; +import java.util.ArrayList; + public interface IniciativaDAO { - void insertarIniciativa(Iniciativa iniciativa) throws PersistenceException; + public void insertarIniciativa(Iniciativa iniciativa) throws PersistenceException; + + public ArrayList consultarIniciativas() throws PersistenceException; - public Iniciativa consultarIniciativa(Integer id) throws PersistenceException; + public void updateIniciativa(int id) throws PersistenceException; + public ArrayList consultarPalabrasClaves() throws PersistenceException; } diff --git a/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java b/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java index e8d80c4..caa92f9 100644 --- a/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java +++ b/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java @@ -7,7 +7,7 @@ import java.util.List; public interface UsuarioDAO { - void insertarUsuario(Usuario usuario) throws PersistenceException; + public Usuario consultarUsuario(String correo) throws PersistenceException; public List consultarUsuarios() throws PersistenceException; public void updateUsuario(String correo, String rol) throws Exception; diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisIniciativaDAO.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisIniciativaDAO.java index a3e8b88..47e4529 100644 --- a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisIniciativaDAO.java +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisIniciativaDAO.java @@ -8,6 +8,8 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.exceptions.PersistenceException; +import java.util.ArrayList; + public class MyBatisIniciativaDAO implements IniciativaDAO { @Inject private IniciativaMapper iniciativaMapper; @@ -22,11 +24,18 @@ public void insertarIniciativa(Iniciativa iniciativa) throws PersistenceExceptio } @Override - public Iniciativa consultarIniciativa(Integer id) throws PersistenceException { - try { - return iniciativaMapper.consultarIniciativa(id); - } catch (org.apache.ibatis.exceptions.PersistenceException e) { - throw new PersistenceException("Error (P) al consultar iniciativa: " + id, e); - } + public ArrayList consultarIniciativas() throws PersistenceException { + return iniciativaMapper.buscarIniciativas(); + } + + @Override + public void updateIniciativa(int id) throws PersistenceException { + iniciativaMapper.updateIniciativa(id); + } + + + @Override + public ArrayList consultarPalabrasClaves() throws PersistenceException { + return iniciativaMapper.consultarPalabrasClaves(); } } diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisUsuarioDAO.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisUsuarioDAO.java index 2b8ab7f..6a75b88 100644 --- a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisUsuarioDAO.java +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisUsuarioDAO.java @@ -13,15 +13,6 @@ public class MyBatisUsuarioDAO implements UsuarioDAO { @Inject private UsuarioMapper usuarioMapper; - @Override - public void insertarUsuario(Usuario usuario) throws PersistenceException { - try { - usuarioMapper.insertarUsuario(usuario); - } catch (org.apache.ibatis.exceptions.PersistenceException e) { - throw new PersistenceException("Error (P) al registrar el usuario " + usuario.toString(), e); - } - - } @Override public Usuario consultarUsuario(String correo) throws PersistenceException { diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java index bc1aafb..b11941e 100644 --- a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java @@ -3,10 +3,16 @@ import edu.eci.cvds.entities.Iniciativa; import org.apache.ibatis.annotations.Param; +import java.util.ArrayList; + public interface IniciativaMapper { public void insertarIniciativa(@Param("iniciativa") Iniciativa iniciativa); - public Iniciativa consultarIniciativa(@Param("id") Integer id); + public ArrayList buscarIniciativas(); + + public void updateIniciativa(@Param("id") int id); + + public ArrayList consultarPalabrasClaves(); } diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java index 7e3c95f..2a8af19 100644 --- a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java @@ -6,8 +6,6 @@ public interface UsuarioMapper { - public void insertarUsuario(@Param("usuario") Usuario usuario); - public Usuario consultarUsuario(@Param("correo") String correo); public List consultarUsuarios(); diff --git a/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectos.java b/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectos.java index 8266469..3391c90 100644 --- a/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectos.java +++ b/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectos.java @@ -3,12 +3,13 @@ import edu.eci.cvds.entities.Iniciativa; import edu.eci.cvds.entities.Usuario; +import java.util.ArrayList; import java.util.List; public interface ServiciosBancoDeProyectos { - public abstract void registrarUsuario(Usuario u) throws ExcepcionBancoDeProyectos; + //Usuario public abstract Usuario consultarUsuario(String correo) throws ExcepcionBancoDeProyectos; @@ -16,8 +17,14 @@ public interface ServiciosBancoDeProyectos { public abstract void updateUsuario(String correo,String rol) throws Exception; - public abstract Iniciativa consultarIniciativa(Integer id) throws ExcepcionBancoDeProyectos; + //Iniciativa + + public abstract ArrayList consultarIniciativas() throws ExcepcionBancoDeProyectos; + + public abstract void updateIniciativa(int id) throws ExcepcionBancoDeProyectos; public abstract void registrarIniciativa(Iniciativa i) throws ExcepcionBancoDeProyectos; -} + public abstract void consultarPalabrasClaves() throws ExcepcionBancoDeProyectos; + + } diff --git a/src/main/java/edu/eci/cvds/services/impl/ServiciosBancoDeProyectosImpl.java b/src/main/java/edu/eci/cvds/services/impl/ServiciosBancoDeProyectosImpl.java index fafeaaf..456c219 100644 --- a/src/main/java/edu/eci/cvds/services/impl/ServiciosBancoDeProyectosImpl.java +++ b/src/main/java/edu/eci/cvds/services/impl/ServiciosBancoDeProyectosImpl.java @@ -8,6 +8,7 @@ import org.apache.ibatis.exceptions.PersistenceException; import org.mybatis.guice.transactional.Transactional; +import java.util.ArrayList; import java.util.List; public class ServiciosBancoDeProyectosImpl implements ServiciosBancoDeProyectos { @@ -15,23 +16,13 @@ public class ServiciosBancoDeProyectosImpl implements ServiciosBancoDeProyectos @Inject private UsuarioDAO usuarioDAO; + + @Inject private IniciativaDAO iniciativaDAO; // Usuarios - @Override - @Transactional - public void registrarUsuario(Usuario usuario) throws ExcepcionBancoDeProyectos { - if (usuario == null) - throw new ExcepcionBancoDeProyectos("El correo no puede ser nulo"); - - try { - usuarioDAO.insertarUsuario(usuario); - } catch (PersistenceException e) { - throw new ExcepcionBancoDeProyectos("Error al registrar el correo " + usuario.getCorreo(), e); - } - } @Override public Usuario consultarUsuario(String correo) throws ExcepcionBancoDeProyectos { @@ -49,22 +40,20 @@ public List consultarUsuarios() throws ExcepcionBancoDeProyectos { return usuarioDAO.consultarUsuarios(); } + @Override public void updateUsuario(String correo, String rol) throws Exception { usuarioDAO.updateUsuario(correo, rol); } + //Iniciativa + @Override - public Iniciativa consultarIniciativa(Integer id) throws ExcepcionBancoDeProyectos { - if (id < 0) - throw new ExcepcionBancoDeProyectos("El numero de ID inválido"); - try { - return iniciativaDAO.consultarIniciativa(id); - } catch (PersistenceException e) { - throw new ExcepcionBancoDeProyectos("Error al consultar iniciativa" + id, e); - } + public ArrayList consultarIniciativas() throws PersistenceException{ + return iniciativaDAO.consultarIniciativas(); } + @Override public void registrarIniciativa(Iniciativa iniciativa) throws ExcepcionBancoDeProyectos { if (iniciativa == null) @@ -76,4 +65,17 @@ public void registrarIniciativa(Iniciativa iniciativa) throws ExcepcionBancoDePr throw new ExcepcionBancoDeProyectos("Error al registrar iniciativa " + iniciativa.getId(), e); } } + + @Override + public void updateIniciativa(int id) throws ExcepcionBancoDeProyectos { + iniciativaDAO.updateIniciativa(id); + + } + + @Override + public void consultarPalabrasClaves() throws ExcepcionBancoDeProyectos { + iniciativaDAO.consultarPalabrasClaves(); + + } + } diff --git a/src/main/java/edu/eci/cvds/view/AdminBean.java b/src/main/java/edu/eci/cvds/view/AdminBean.java index c1aed1a..d485c52 100644 --- a/src/main/java/edu/eci/cvds/view/AdminBean.java +++ b/src/main/java/edu/eci/cvds/view/AdminBean.java @@ -14,7 +14,6 @@ public class AdminBean extends BasePageBean { - private List roles = new ArrayList<>(Arrays.asList("Admin", "Pmo","Proponente")); private List listUsuarios = null; @Inject @@ -30,6 +29,7 @@ public List consultarUsuarios() { return listUsuarios; } + public void updateUsuario(String correo, String rol) { try { diff --git a/src/main/java/edu/eci/cvds/view/IniciativaBean.java b/src/main/java/edu/eci/cvds/view/IniciativaBean.java index eb72e9f..7195696 100644 --- a/src/main/java/edu/eci/cvds/view/IniciativaBean.java +++ b/src/main/java/edu/eci/cvds/view/IniciativaBean.java @@ -1,9 +1,11 @@ package edu.eci.cvds.view; +import com.google.inject.Inject; import edu.eci.cvds.entities.EstadoIniciativa; import edu.eci.cvds.entities.Iniciativa; import edu.eci.cvds.entities.Usuario; + import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.context.FacesContext; @@ -12,10 +14,13 @@ @ManagedBean(name="IniciativaBean") + public class IniciativaBean extends BasePageBean { - public void insertarIniciativa (Integer id, String nombre, EstadoIniciativa estado, ArrayList votos, ArrayList palabrasClave, ArrayList interesados, Usuario proponente, String area, Date fechaCreacion, Date fechaFin, String descripcion, ArrayList integrantesDelProyecto) throws Exception { + private Iniciativa iniciativa; + + public void insertarIniciativa (Integer id, String nombre, EstadoIniciativa estado, ArrayList votos, ArrayList palabrasClave, ArrayList interesados, Usuario proponente, String area, Date fechaCreacion, Date fechaFin, String descripcion, ArrayList integrantesDelProyecto) throws Exception { Iniciativa iniciativa = new Iniciativa(id, nombre, estado, votos, palabrasClave, interesados,proponente, area, fechaCreacion, fechaFin, descripcion,integrantesDelProyecto); FacesMessage msg; msg = new FacesMessage("Iniciativa Insertada Exitosamente"); @@ -23,4 +28,8 @@ public void insertarIniciativa (Integer id, String nombre, EstadoIniciativa esta } + public void setIniciativa(Iniciativa iniciativa) { + this.iniciativa = iniciativa; + } + } diff --git a/src/main/java/edu/eci/cvds/view/LoginBean.java b/src/main/java/edu/eci/cvds/view/LoginBean.java index e0617d8..ce62663 100644 --- a/src/main/java/edu/eci/cvds/view/LoginBean.java +++ b/src/main/java/edu/eci/cvds/view/LoginBean.java @@ -25,23 +25,23 @@ public class LoginBean extends BasePageBean{ /** - * - */ - private static final long serialVersionUID = 1L; - + * + */ + private static final long serialVersionUID = 1L; + private String correo; private String password; private boolean rememberMe; - + @Inject private SessionLogger logger; public Subject getCurrentUser(){ - Subject currentUser = SecurityUtils.getSubject(); - return currentUser; + Subject currentUser = SecurityUtils.getSubject(); + return currentUser; } - - + + public boolean isRememberMe() { return rememberMe; } @@ -65,7 +65,7 @@ public String getCorreo() { public void setCorreo(String correo) { this.correo = correo; } - + @RequiresGuest public void login(String correo,String password,boolean rememberMe) throws ExcepcionBancoDeProyectos{ try { @@ -74,9 +74,9 @@ public void login(String correo,String password,boolean rememberMe) throws Excep } catch (ExcepcionBancoDeProyectos excepcionBancoDeProyectos) { LoginBean.setErrorMessage(excepcionBancoDeProyectos); }catch (IOException e) { - LoginBean.setErrorMessage(e); + LoginBean.setErrorMessage(e); }catch(Exception e) { - LoginBean.setErrorMessage(e); + LoginBean.setErrorMessage(e); } @@ -92,22 +92,22 @@ public void devolver(){ } } public boolean isLogged(){ - + return logger.isLogged(); } - + public void logout() throws IOException { - if (isLogged()) { - FacesContext.getCurrentInstance().getExternalContext().redirect("/login.xhtml"); - SecurityUtils.getSubject().logout(); - } + if (isLogged()) { + FacesContext.getCurrentInstance().getExternalContext().redirect("/login.xhtml"); + SecurityUtils.getSubject().logout(); + } } - + protected static void setErrorMessage(Exception e) { - String message = e.getMessage(); - FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, message, null)); - } + String message = e.getMessage(); + FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, message, null)); + } + - } \ No newline at end of file diff --git a/src/main/resources/mappers/IniciativaMapper.xml b/src/main/resources/mappers/IniciativaMapper.xml index a48e149..82e4fe6 100644 --- a/src/main/resources/mappers/IniciativaMapper.xml +++ b/src/main/resources/mappers/IniciativaMapper.xml @@ -3,7 +3,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + INSERT INTO INICIATIVA VALUES ( @@ -38,18 +40,81 @@ i.fechaFin, i.descripcion, i.integrantesDelProyecto - FROM USUARIOS AS i + FROM INICIATIVAS AS i WHERE u.id=#{id} + + + + UPDATE iniciativas SET + #{iniciativa.nombre}, + #{iniciativa.estado}, + #{iniciativa.votos}, + #{iniciativa.palabrasClave}, + #{iniciativa.interesados}, + #{iniciativa.proponente}, + #{iniciativa.area}, + #{iniciativa.fechaCreacion}, + #{iniciativa.fechaFin} + #{iniciativa.descripcion} + #{iniciativa.integrantesDelProyecto} + WHERE id=#{id}; + + - + - - + + + + + + + + + + + + id property='palabrasClave' column='palabrasClave' /> - \ No newline at end of file + + + id property='correo' column='correo' /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/mappers/UsuarioMapper.xml b/src/main/resources/mappers/UsuarioMapper.xml index fdc5b56..96514e8 100644 --- a/src/main/resources/mappers/UsuarioMapper.xml +++ b/src/main/resources/mappers/UsuarioMapper.xml @@ -4,16 +4,6 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - INSERT INTO USUARIOS - VALUES ( - #{usuario.correo}, - #{usuario.contraseña}, - #{usuario.nombre}, - #{usuario.rol, typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler}, - #{usuario.estado, typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler} - ) - - SELECT * FROM USUARIOS @@ -45,9 +35,7 @@ - - - - + + \ No newline at end of file diff --git a/src/main/resources/mybatis-config-h2.xml b/src/main/resources/mybatis-config-h2.xml index e3cc066..4989d87 100644 --- a/src/main/resources/mybatis-config-h2.xml +++ b/src/main/resources/mybatis-config-h2.xml @@ -11,8 +11,7 @@ - + diff --git a/src/main/resources/mybatis-config.xml b/src/main/resources/mybatis-config.xml index 2b01350..8751f78 100644 --- a/src/main/resources/mybatis-config.xml +++ b/src/main/resources/mybatis-config.xml @@ -11,8 +11,7 @@ - + From 7235de78143d6cc91dd69bb19fb2f3af1a9888ce Mon Sep 17 00:00:00 2001 From: D4v0r Date: Fri, 17 Apr 2020 13:31:10 -0500 Subject: [PATCH 08/15] correccion de paquetes y adicion de un IniciativaMapper --- .../eci/cvds/entities/EstadoIniciativa.java | 5 + .../edu/eci/cvds/entities/Iniciativa.java | 139 ++++++++++++++++++ .../eci/cvds/guice/GuiceContextListener.java | 18 ++- .../eci/cvds/persistence/IniciativaDAO.java | 19 +++ .../edu/eci/cvds/persistence/UsuarioDAO.java | 12 +- .../mybatisimpl/MyBatisIniciativaDAO.java | 51 +++++++ .../mybatisimpl/MyBatisUsuarioDAO.java | 19 ++- .../mybatisimpl/mappers/IniciativaMapper.java | 20 +++ .../mybatisimpl/mappers/UsuarioMapper.java | 8 +- .../services/ServiciosBancoDeProyectos.java | 9 -- .../cvds/services/ServiciosIniciativa.java | 17 +++ .../services/ServiciosIniciativaFactory.java | 4 + .../services/ServiciosReservaFactory.java | 59 -------- .../eci/cvds/services/ServiciosUsuario.java | 15 ++ .../services/ServiciosUsuarioFactory.java | 58 ++++++++ .../impl/ServiciosBancoDeProyectosImpl.java | 43 ------ .../impl/ServiciosIniciativaImpl.java | 35 +++++ .../impl/ServiciosIniciativaSTUB.java | 30 ++++ .../services/impl/ServiciosUsuarioImpl.java | 30 ++++ .../services/impl/ServiciosUsuarioSTUB.java | 25 ++++ .../edu/eci/cvds/view/IniciativaBean.java | 10 ++ .../java/edu/eci/cvds/view/UsuarioBean.java | 10 ++ src/main/resources/config.properties | 2 +- .../resources/mappers/IniciativaMapper.xml | 45 ++++++ src/main/resources/mappers/UsuarioMapper.xml | 36 ++--- src/main/resources/mybatis-config-h2.xml | 9 +- src/main/resources/mybatis-config.xml | 10 +- tables.sql | 97 +++++++++++- 28 files changed, 666 insertions(+), 169 deletions(-) create mode 100644 src/main/java/edu/eci/cvds/entities/EstadoIniciativa.java create mode 100644 src/main/java/edu/eci/cvds/entities/Iniciativa.java create mode 100644 src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java create mode 100644 src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisIniciativaDAO.java create mode 100644 src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java delete mode 100644 src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectos.java create mode 100644 src/main/java/edu/eci/cvds/services/ServiciosIniciativa.java create mode 100644 src/main/java/edu/eci/cvds/services/ServiciosIniciativaFactory.java delete mode 100644 src/main/java/edu/eci/cvds/services/ServiciosReservaFactory.java create mode 100644 src/main/java/edu/eci/cvds/services/ServiciosUsuario.java create mode 100644 src/main/java/edu/eci/cvds/services/ServiciosUsuarioFactory.java delete mode 100644 src/main/java/edu/eci/cvds/services/impl/ServiciosBancoDeProyectosImpl.java create mode 100644 src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaImpl.java create mode 100644 src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaSTUB.java create mode 100644 src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioImpl.java create mode 100644 src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioSTUB.java create mode 100644 src/main/java/edu/eci/cvds/view/IniciativaBean.java create mode 100644 src/main/java/edu/eci/cvds/view/UsuarioBean.java create mode 100644 src/main/resources/mappers/IniciativaMapper.xml diff --git a/src/main/java/edu/eci/cvds/entities/EstadoIniciativa.java b/src/main/java/edu/eci/cvds/entities/EstadoIniciativa.java new file mode 100644 index 0000000..6acda98 --- /dev/null +++ b/src/main/java/edu/eci/cvds/entities/EstadoIniciativa.java @@ -0,0 +1,5 @@ +package edu.eci.cvds.entities; + +public enum EstadoIniciativa { + ESPERA, REVISION, PROYECTO, SOLUCIONADO +} diff --git a/src/main/java/edu/eci/cvds/entities/Iniciativa.java b/src/main/java/edu/eci/cvds/entities/Iniciativa.java new file mode 100644 index 0000000..8419ca2 --- /dev/null +++ b/src/main/java/edu/eci/cvds/entities/Iniciativa.java @@ -0,0 +1,139 @@ +package edu.eci.cvds.entities; + +import java.sql.Date; +import java.util.List; + +public class Iniciativa { + + private int id; + private String nombre; + private String area; + private Usuario proponente; + private String descripcion; + private EstadoIniciativa estado; + private Date fechaDeInicio; + private Date fechaDeFin; + private List palabrasClave; + private List votos; + private List interesados; + + public Iniciativa(){} + + public Iniciativa(int id, String nombre, String area, Usuario proponente, String descripcion, EstadoIniciativa estado, Date fechaDeInicio, Date fechaDeFin, List palabrasClave){ + this.id = id; + this.nombre = nombre; + this.area = area; + this.proponente = proponente; + this.descripcion = descripcion; + this.estado = estado; + this.fechaDeInicio = fechaDeInicio; + this.fechaDeFin = fechaDeFin; + this.palabrasClave = palabrasClave; + + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getDescripcion() { + return descripcion; + } + + public void setDescripcion(String descripcion) { + this.descripcion = descripcion; + } + + public EstadoIniciativa getEstado() { + return estado; + } + + public void setEstado(EstadoIniciativa estado) { + this.estado = estado; + } + + public Date getFechaDeInicio() { + return fechaDeInicio; + } + + public void setFechaDeInicio(Date fechaDeInicio) { + this.fechaDeInicio = fechaDeInicio; + } + + public Date getFechaDeFin() { + return fechaDeFin; + } + + public void setFechaDeFin(Date fechaDeFin) { + this.fechaDeFin = fechaDeFin; + } + + public List getPalabrasClave() { + return palabrasClave; + } + + public void setPalabrasClave(List palabrasClave) { + this.palabrasClave = palabrasClave; + } + + public List getVotos() { + return votos; + } + + public void setVotos(List votos) { + this.votos = votos; + } + + public List getInteresados() { + return interesados; + } + + public void setInteresados(List interesados) { + this.interesados = interesados; + } + + public Usuario getProponente() { + return proponente; + } + + public void setProponente(Usuario proponente) { + this.proponente = proponente; + } + + @Override + public String toString() { + return "Iniciativa{" + + "id=" + id + + ", nombre='" + nombre + '\'' + + ", area='" + area + '\'' + + ", proponente=" + proponente.toString() + + ", descripcion='" + descripcion + '\'' + + ", estado=" + estado.name() + + ", fechaDeInicio=" + fechaDeInicio.toString() + + ", fechaDeFin=" + fechaDeFin.toString() + + ", palabrasClave=" + palabrasClave.toString() + + ", votos=" + votos.toString() + + ", interesados=" + interesados.toString() + + '}'; + } +} diff --git a/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java b/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java index 6d8431c..35711f6 100644 --- a/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java +++ b/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java @@ -5,6 +5,11 @@ import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; + +import edu.eci.cvds.services.ServiciosIniciativa; +import edu.eci.cvds.services.ServiciosUsuario; +import edu.eci.cvds.services.impl.ServiciosIniciativaImpl; +import edu.eci.cvds.services.impl.ServiciosUsuarioImpl; import org.mybatis.guice.XMLMyBatisModule; import org.mybatis.guice.datasource.helper.JdbcHelper; import com.google.inject.Guice; @@ -14,8 +19,6 @@ import edu.eci.cvds.authentication.ShiroSession; import edu.eci.cvds.persistence.*; import edu.eci.cvds.persistence.mybatisimpl.*; -import edu.eci.cvds.services.ServiciosBancoDeProyectos; -import edu.eci.cvds.services.impl.ServiciosBancoDeProyectosImpl; public class GuiceContextListener implements ServletContextListener { @@ -33,8 +36,17 @@ protected void initialize() { setEnvironmentId("development"); setClassPathResource("mybatis-config.xml"); // TODO Add service class associated to Stub implementation - bind(ServiciosBancoDeProyectos.class).to(ServiciosBancoDeProyectosImpl.class); + + //Services + bind(ServiciosIniciativa.class).to(ServiciosIniciativaImpl.class); + bind(ServiciosUsuario.class).to(ServiciosUsuarioImpl.class); + bind(ServiciosIniciativa.class).to(ServiciosIniciativaImpl.class); + + //Persistence bind(UsuarioDAO.class).to(MyBatisUsuarioDAO.class); + bind(IniciativaDAO.class).to(MyBatisIniciativaDAO.class); + + //Authentication bind(SessionLogger.class).to(ShiroSession.class); } diff --git a/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java b/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java new file mode 100644 index 0000000..a5e0d07 --- /dev/null +++ b/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java @@ -0,0 +1,19 @@ +package edu.eci.cvds.persistence; + +import edu.eci.cvds.entities.EstadoIniciativa; +import edu.eci.cvds.entities.Iniciativa; +import org.apache.ibatis.exceptions.PersistenceException; + +import java.util.List; + +public interface IniciativaDAO { + + void insertarIniciativa(Iniciativa i) throws PersistenceException; + + void modificarIniciativa(int id, EstadoIniciativa estado) throws PersistenceException; + + Iniciativa cargarIniciativa(int id) throws PersistenceException; + + List cargarIniciativas() throws PersistenceException; + +} diff --git a/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java b/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java index d5ea06a..c50f90d 100644 --- a/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java +++ b/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java @@ -1,10 +1,18 @@ package edu.eci.cvds.persistence; +import edu.eci.cvds.entities.Rol; import edu.eci.cvds.entities.Usuario; import org.apache.ibatis.exceptions.PersistenceException; +import java.util.List; + public interface UsuarioDAO { - void insertarUsuario(Usuario usuario) throws PersistenceException; - public Usuario consultarUsuario(String correo) throws PersistenceException; + + void modificarUsuario(String correo, Rol r) throws PersistenceException; + + Usuario cargarUsuario(String correo) throws PersistenceException; + + List cargarUsuarios() throws PersistenceException; + } diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisIniciativaDAO.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisIniciativaDAO.java new file mode 100644 index 0000000..3881d9c --- /dev/null +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisIniciativaDAO.java @@ -0,0 +1,51 @@ +package edu.eci.cvds.persistence.mybatisimpl; + +import com.google.inject.Inject; +import edu.eci.cvds.entities.EstadoIniciativa; +import edu.eci.cvds.entities.Iniciativa; +import edu.eci.cvds.persistence.IniciativaDAO; +import edu.eci.cvds.persistence.mybatisimpl.mappers.IniciativaMapper; +import org.apache.ibatis.exceptions.PersistenceException; + +import java.util.List; + +public class MyBatisIniciativaDAO implements IniciativaDAO { + @Inject + private IniciativaMapper iniciativaMapper; + + @Override + public void insertarIniciativa(Iniciativa i) throws PersistenceException { + try{ + iniciativaMapper.registrarIniciativa(i); + }catch (PersistenceException e){ + throw new PersistenceException("Error al registrar iniciativa: " +i.toString(), e); + } + } + + @Override + public void modificarIniciativa(int id, EstadoIniciativa estado) throws PersistenceException { + try{ + iniciativaMapper.modificarEstadoIniciativa(id, estado); + }catch (PersistenceException e){ + throw new PersistenceException("Error al modificar iniciativa: " + id, e); + } + } + + @Override + public Iniciativa cargarIniciativa(int id) throws PersistenceException { + try{ + return iniciativaMapper.consultarIniciativa(id); + } catch (PersistenceException e){ + throw new PersistenceException("Error al consultar iniciativa: " +id, e); + } + } + + @Override + public List cargarIniciativas() throws PersistenceException { + try{ + return iniciativaMapper.consultarIniciativas(); + } catch (PersistenceException e){ + throw new PersistenceException("Error al consultar iniciativas ", e); + } + } +} diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisUsuarioDAO.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisUsuarioDAO.java index d70ca96..efe517e 100644 --- a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisUsuarioDAO.java +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/MyBatisUsuarioDAO.java @@ -14,21 +14,30 @@ public class MyBatisUsuarioDAO implements UsuarioDAO { private UsuarioMapper usuarioMapper; @Override - public void insertarUsuario(Usuario usuario) throws PersistenceException { + public void modificarUsuario(String correo, Rol r) throws PersistenceException { try { - usuarioMapper.insertarUsuario(usuario); + usuarioMapper.modificarRolUsuario(correo, r); } catch (org.apache.ibatis.exceptions.PersistenceException e) { - throw new PersistenceException("Error (P) al registrar el usuario " + usuario.toString(), e); + throw new PersistenceException("Error al modificar el usuario:" + correo, e); } } @Override - public Usuario consultarUsuario(String correo) throws PersistenceException { + public Usuario cargarUsuario(String correo) throws PersistenceException { try { return usuarioMapper.consultarUsuario(correo); } catch (org.apache.ibatis.exceptions.PersistenceException e) { - throw new PersistenceException("Error (P) al consultar el usuario: " + correo, e); + throw new PersistenceException("Error al consultar el usuario: " + correo, e); + } + + } + @Override + public List cargarUsuarios() throws PersistenceException { + try { + return usuarioMapper.consultarUsuarios(); + } catch (org.apache.ibatis.exceptions.PersistenceException e) { + throw new PersistenceException("Error al consultar los usuarios", e); } } diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java new file mode 100644 index 0000000..fb66c49 --- /dev/null +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java @@ -0,0 +1,20 @@ +package edu.eci.cvds.persistence.mybatisimpl.mappers; + +import edu.eci.cvds.entities.EstadoIniciativa; +import edu.eci.cvds.entities.Iniciativa; + +import java.util.List; + +public interface IniciativaMapper { + + void registrarIniciativa(Iniciativa i); + + void modificarEstadoIniciativa(int id, EstadoIniciativa estado); + + Iniciativa consultarIniciativa(int id); + + List consultarIniciativas(); + + List consultarIniciativasPorTag(String tag); + +} diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java index 0df43e2..86bca0c 100644 --- a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java @@ -3,13 +3,17 @@ import java.util.List; + +import edu.eci.cvds.entities.Rol; import org.apache.ibatis.annotations.Param; import edu.eci.cvds.entities.Usuario; public interface UsuarioMapper { - public void insertarUsuario(@Param("usuario") Usuario usuario); - public Usuario consultarUsuario(@Param("correo") String correo); + public List consultarUsuarios(); + + public void modificarRolUsuario(@Param("correo") String correo, @Param("rol") Rol r); + } diff --git a/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectos.java b/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectos.java deleted file mode 100644 index 63438fa..0000000 --- a/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectos.java +++ /dev/null @@ -1,9 +0,0 @@ -package edu.eci.cvds.services; - -import edu.eci.cvds.entities.Usuario; - -public interface ServiciosBancoDeProyectos { - public abstract void registrarUsuario(Usuario u) throws ExcepcionBancoDeProyectos; - - public abstract Usuario consultarUsuario(String correo) throws ExcepcionBancoDeProyectos; -} diff --git a/src/main/java/edu/eci/cvds/services/ServiciosIniciativa.java b/src/main/java/edu/eci/cvds/services/ServiciosIniciativa.java new file mode 100644 index 0000000..242c441 --- /dev/null +++ b/src/main/java/edu/eci/cvds/services/ServiciosIniciativa.java @@ -0,0 +1,17 @@ +package edu.eci.cvds.services; + +import edu.eci.cvds.entities.EstadoIniciativa; +import edu.eci.cvds.entities.Iniciativa; + +import java.util.List; + +public interface ServiciosIniciativa { + + void crearIniciativa(Iniciativa i) throws ExcepcionBancoDeProyectos; + + void modificarIniciativa(int id, EstadoIniciativa estado) throws ExcepcionBancoDeProyectos; + + Iniciativa buscarIniciativa(int id) throws ExcepcionBancoDeProyectos; + + List buscarIniciativas() throws ExcepcionBancoDeProyectos; +} diff --git a/src/main/java/edu/eci/cvds/services/ServiciosIniciativaFactory.java b/src/main/java/edu/eci/cvds/services/ServiciosIniciativaFactory.java new file mode 100644 index 0000000..ab1701b --- /dev/null +++ b/src/main/java/edu/eci/cvds/services/ServiciosIniciativaFactory.java @@ -0,0 +1,4 @@ +package edu.eci.cvds.services; + +public class ServiciosIniciativaFactory { +} diff --git a/src/main/java/edu/eci/cvds/services/ServiciosReservaFactory.java b/src/main/java/edu/eci/cvds/services/ServiciosReservaFactory.java deleted file mode 100644 index b14a750..0000000 --- a/src/main/java/edu/eci/cvds/services/ServiciosReservaFactory.java +++ /dev/null @@ -1,59 +0,0 @@ -package edu.eci.cvds.services; - -import com.google.inject.Injector; -import edu.eci.cvds.persistence.*; -import edu.eci.cvds.persistence.mybatisimpl.*; -import edu.eci.cvds.services.impl.ServiciosBancoDeProyectosImpl; -import org.mybatis.guice.XMLMyBatisModule; -import org.mybatis.guice.datasource.helper.JdbcHelper; - -import java.util.Optional; - -import static com.google.inject.Guice.createInjector; - -public class ServiciosReservaFactory { - - private static ServiciosReservaFactory instance = new ServiciosReservaFactory(); - - private static Optional optInjector; - - private Injector myBatisInjector(String env, String pathResource) { - return createInjector(new XMLMyBatisModule() { - @Override - protected void initialize() { - setEnvironmentId(env); - install(JdbcHelper.PostgreSQL); - setClassPathResource(pathResource); - bind(UsuarioDAO.class).to(MyBatisUsuarioDAO.class); - bind(ServiciosBancoDeProyectos.class).to(ServiciosBancoDeProyectosImpl.class); - } - }); - } - - private ServiciosReservaFactory(){ - optInjector = Optional.empty(); - } - - public ServiciosBancoDeProyectos getServiciosBiblioteca(){ - if (!optInjector.isPresent()) { - optInjector = Optional.of(myBatisInjector("development","mybatis-config.xml")); - } - - return optInjector.get().getInstance(ServiciosBancoDeProyectos.class); - } - - - public ServiciosBancoDeProyectos getServiciosBibliotecaTesting(){ - if (!optInjector.isPresent()) { - optInjector = Optional.of(myBatisInjector("development","mybatis-config.xml")); - } - - return optInjector.get().getInstance(ServiciosBancoDeProyectos.class); - } - - - public static ServiciosReservaFactory getInstance(){ - return instance; - } - -} \ No newline at end of file diff --git a/src/main/java/edu/eci/cvds/services/ServiciosUsuario.java b/src/main/java/edu/eci/cvds/services/ServiciosUsuario.java new file mode 100644 index 0000000..33b61ac --- /dev/null +++ b/src/main/java/edu/eci/cvds/services/ServiciosUsuario.java @@ -0,0 +1,15 @@ +package edu.eci.cvds.services; + +import edu.eci.cvds.entities.Rol; +import edu.eci.cvds.entities.Usuario; + +import java.util.List; + +public interface ServiciosUsuario { + + void modificarUsuario(String correo, Rol r) throws ExcepcionBancoDeProyectos; + + Usuario buscarUsuario(String correo) throws ExcepcionBancoDeProyectos; + + List buscarUsuarios() throws ExcepcionBancoDeProyectos; +} diff --git a/src/main/java/edu/eci/cvds/services/ServiciosUsuarioFactory.java b/src/main/java/edu/eci/cvds/services/ServiciosUsuarioFactory.java new file mode 100644 index 0000000..78af60c --- /dev/null +++ b/src/main/java/edu/eci/cvds/services/ServiciosUsuarioFactory.java @@ -0,0 +1,58 @@ +package edu.eci.cvds.services; + +import com.google.inject.Inject; +import com.google.inject.Injector; +import edu.eci.cvds.persistence.UsuarioDAO; +import edu.eci.cvds.persistence.mybatisimpl.MyBatisUsuarioDAO; +import edu.eci.cvds.services.impl.ServiciosUsuarioImpl; +import org.mybatis.guice.XMLMyBatisModule; +import org.mybatis.guice.datasource.helper.JdbcHelper; + +import java.util.Optional; + +import static com.google.inject.Guice.createInjector; + +public class ServiciosUsuarioFactory { + + private static ServiciosUsuarioFactory instance = new ServiciosUsuarioFactory(); + + private static Optional optionalInjector; + + private Injector myBatisInjector(String env, String pathResource){ + return createInjector(new XMLMyBatisModule() { + @Override + protected void initialize() { + setEnvironmentId(env); + install(JdbcHelper.PostgreSQL); + setClassPathResource(pathResource); + bind(UsuarioDAO.class).to(MyBatisUsuarioDAO.class); + bind(ServiciosUsuario.class).to(ServiciosUsuarioImpl.class); + } + }); + } + + private ServiciosUsuarioFactory(){ + optionalInjector = Optional.empty(); + } + + public ServiciosUsuario getServiciosUsuario(){ + if (!optionalInjector.isPresent()) { + optionalInjector = Optional.of(myBatisInjector("development","mybatis-config.xml")); + } + + return optionalInjector.get().getInstance(ServiciosUsuario.class); + } + + public ServiciosUsuario getServiciosUsuarioTesting(){ + if (!optionalInjector.isPresent()) { + optionalInjector = Optional.of(myBatisInjector("development","mybatis-config-h2.xml")); + } + + return optionalInjector.get().getInstance(ServiciosUsuario.class); + } + + + public static ServiciosUsuarioFactory getInstance(){ + return instance; + } +} diff --git a/src/main/java/edu/eci/cvds/services/impl/ServiciosBancoDeProyectosImpl.java b/src/main/java/edu/eci/cvds/services/impl/ServiciosBancoDeProyectosImpl.java deleted file mode 100644 index 7afffbc..0000000 --- a/src/main/java/edu/eci/cvds/services/impl/ServiciosBancoDeProyectosImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package edu.eci.cvds.services.impl; - -import com.google.inject.Inject; -import edu.eci.cvds.entities.*; -import edu.eci.cvds.services.*; -import edu.eci.cvds.persistence.*; -import edu.eci.cvds.services.ServiciosBancoDeProyectos; -import org.apache.ibatis.exceptions.PersistenceException; -import org.mybatis.guice.transactional.Transactional; - -public class ServiciosBancoDeProyectosImpl implements ServiciosBancoDeProyectos { - - - @Inject - private UsuarioDAO usuarioDAO; - - - // Usuarios - - @Override - @Transactional - public void registrarUsuario(Usuario usuario) throws ExcepcionBancoDeProyectos { - if (usuario == null) - throw new ExcepcionBancoDeProyectos("El correo no puede ser nulo"); - - try { - usuarioDAO.insertarUsuario(usuario); - } catch (PersistenceException e) { - throw new ExcepcionBancoDeProyectos("Error al registrar el correo " + usuario.getCorreo(), e); - } - } - - @Override - public Usuario consultarUsuario(String correo) throws ExcepcionBancoDeProyectos { - if (correo == "") - throw new ExcepcionBancoDeProyectos("El numero de documento es inválido"); - try { - return usuarioDAO.consultarUsuario(correo); - } catch (PersistenceException e) { - throw new ExcepcionBancoDeProyectos("Error al consultar el usuario" + correo, e); - } - } -} diff --git a/src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaImpl.java b/src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaImpl.java new file mode 100644 index 0000000..fd60e7d --- /dev/null +++ b/src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaImpl.java @@ -0,0 +1,35 @@ +package edu.eci.cvds.services.impl; + +import com.google.inject.Inject; +import edu.eci.cvds.entities.EstadoIniciativa; +import edu.eci.cvds.entities.Iniciativa; +import edu.eci.cvds.persistence.IniciativaDAO; +import edu.eci.cvds.services.ExcepcionBancoDeProyectos; +import edu.eci.cvds.services.ServiciosIniciativa; + +import java.util.List; + +public class ServiciosIniciativaImpl implements ServiciosIniciativa { + @Inject + IniciativaDAO iniciativaDAO; + + @Override + public void crearIniciativa(Iniciativa i) throws ExcepcionBancoDeProyectos { + + } + + @Override + public void modificarIniciativa(int id, EstadoIniciativa estado) throws ExcepcionBancoDeProyectos { + + } + + @Override + public Iniciativa buscarIniciativa(int id) throws ExcepcionBancoDeProyectos { + return null; + } + + @Override + public List buscarIniciativas() throws ExcepcionBancoDeProyectos { + return null; + } +} diff --git a/src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaSTUB.java b/src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaSTUB.java new file mode 100644 index 0000000..a83ce2f --- /dev/null +++ b/src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaSTUB.java @@ -0,0 +1,30 @@ +package edu.eci.cvds.services.impl; + +import edu.eci.cvds.entities.EstadoIniciativa; +import edu.eci.cvds.entities.Iniciativa; +import edu.eci.cvds.services.ExcepcionBancoDeProyectos; +import edu.eci.cvds.services.ServiciosIniciativa; + +import java.util.List; + +public class ServiciosIniciativaSTUB implements ServiciosIniciativa { + @Override + public void crearIniciativa(Iniciativa i) throws ExcepcionBancoDeProyectos { + + } + + @Override + public void modificarIniciativa(int id, EstadoIniciativa estado) throws ExcepcionBancoDeProyectos { + + } + + @Override + public Iniciativa buscarIniciativa(int id) throws ExcepcionBancoDeProyectos { + return null; + } + + @Override + public List buscarIniciativas() throws ExcepcionBancoDeProyectos { + return null; + } +} diff --git a/src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioImpl.java b/src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioImpl.java new file mode 100644 index 0000000..dc357f5 --- /dev/null +++ b/src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioImpl.java @@ -0,0 +1,30 @@ +package edu.eci.cvds.services.impl; + +import com.google.inject.Inject; +import edu.eci.cvds.entities.Rol; +import edu.eci.cvds.entities.Usuario; +import edu.eci.cvds.persistence.UsuarioDAO; +import edu.eci.cvds.services.ExcepcionBancoDeProyectos; +import edu.eci.cvds.services.ServiciosUsuario; + +import java.util.List; + +public class ServiciosUsuarioImpl implements ServiciosUsuario { + @Inject + UsuarioDAO usuarioDAO; + + @Override + public void modificarUsuario(String correo, Rol r) throws ExcepcionBancoDeProyectos { + + } + + @Override + public Usuario buscarUsuario(String correo) throws ExcepcionBancoDeProyectos { + return null; + } + + @Override + public List buscarUsuarios() throws ExcepcionBancoDeProyectos { + return null; + } +} diff --git a/src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioSTUB.java b/src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioSTUB.java new file mode 100644 index 0000000..cc0add7 --- /dev/null +++ b/src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioSTUB.java @@ -0,0 +1,25 @@ +package edu.eci.cvds.services.impl; + +import edu.eci.cvds.entities.Rol; +import edu.eci.cvds.entities.Usuario; +import edu.eci.cvds.services.ExcepcionBancoDeProyectos; +import edu.eci.cvds.services.ServiciosUsuario; + +import java.util.List; + +public class ServiciosUsuarioSTUB implements ServiciosUsuario { + @Override + public void modificarUsuario(String correo, Rol r) throws ExcepcionBancoDeProyectos { + + } + + @Override + public Usuario buscarUsuario(String correo) throws ExcepcionBancoDeProyectos { + return null; + } + + @Override + public List buscarUsuarios() throws ExcepcionBancoDeProyectos { + return null; + } +} diff --git a/src/main/java/edu/eci/cvds/view/IniciativaBean.java b/src/main/java/edu/eci/cvds/view/IniciativaBean.java new file mode 100644 index 0000000..ded7244 --- /dev/null +++ b/src/main/java/edu/eci/cvds/view/IniciativaBean.java @@ -0,0 +1,10 @@ +package edu.eci.cvds.view; + +import com.google.inject.Inject; +import edu.eci.cvds.services.ServiciosIniciativa; + +public class IniciativaBean extends BasePageBean { + + @Inject + private ServiciosIniciativa serviciosIniciativa; +} diff --git a/src/main/java/edu/eci/cvds/view/UsuarioBean.java b/src/main/java/edu/eci/cvds/view/UsuarioBean.java new file mode 100644 index 0000000..db36d14 --- /dev/null +++ b/src/main/java/edu/eci/cvds/view/UsuarioBean.java @@ -0,0 +1,10 @@ +package edu.eci.cvds.view; + +import com.google.inject.Inject; +import edu.eci.cvds.services.ServiciosUsuario; + +public class UsuarioBean extends BasePageBean { + + @Inject + private ServiciosUsuario serviciosUsuario; +} diff --git a/src/main/resources/config.properties b/src/main/resources/config.properties index 6cf5b49..dc6630f 100644 --- a/src/main/resources/config.properties +++ b/src/main/resources/config.properties @@ -1,4 +1,4 @@ username=ezebrnxanbljmp password=e36523103e690ebb23adb1adb2dd9a685317e472cd86c3e405a1ef6bb08f36b0 -url=jdbc:postgresql://ec2-52-86-73-86.compute-1.amazonaws.com:5432/d22fmpp75mprbv +url=jdbc:postgresql://ec2-52-86-73-86.compute-1.amazonaws.com:5432/d22fmpp75mprbv?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory driver=org.postgresql.Driver \ No newline at end of file diff --git a/src/main/resources/mappers/IniciativaMapper.xml b/src/main/resources/mappers/IniciativaMapper.xml new file mode 100644 index 0000000..1170c82 --- /dev/null +++ b/src/main/resources/mappers/IniciativaMapper.xml @@ -0,0 +1,45 @@ + + + + + + + INSERT INTO INICIATIVAS(id, nombre, area, descripcion, proponente, estado, fecha_creacion) + VALUES (#{i.id}, #{i.nombre}, #{i.area}, #{i.descripcion}, #{i.proponente.correo}, #{i.estado}, #{i.fechaDeInicio}) + + + + UPDATE INICIATIVAS SET estado=#{estado} WHERE id=#{id} + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mappers/UsuarioMapper.xml b/src/main/resources/mappers/UsuarioMapper.xml index 828f522..5d88034 100644 --- a/src/main/resources/mappers/UsuarioMapper.xml +++ b/src/main/resources/mappers/UsuarioMapper.xml @@ -4,36 +4,22 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - INSERT INTO USUARIOS - VALUES ( - #{usuario.correo}, - #{usuario.contraseña}, - #{usuario.nombre}, - #{usuario.rol, typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler}, - #{usuario.estado, typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler} - ) - - - + SELECT * FROM USUARIOS - + + + UPDATE USUARIOS SET ROL=#{rol} WHERE CORREO=#{correo} + - - - - + + + \ No newline at end of file diff --git a/src/main/resources/mybatis-config-h2.xml b/src/main/resources/mybatis-config-h2.xml index 04981cf..524c548 100644 --- a/src/main/resources/mybatis-config-h2.xml +++ b/src/main/resources/mybatis-config-h2.xml @@ -6,13 +6,9 @@ + - - - - @@ -27,7 +23,8 @@ - + + \ No newline at end of file diff --git a/src/main/resources/mybatis-config.xml b/src/main/resources/mybatis-config.xml index b4521a0..99ab387 100644 --- a/src/main/resources/mybatis-config.xml +++ b/src/main/resources/mybatis-config.xml @@ -7,13 +7,9 @@ + - - - - @@ -27,8 +23,8 @@ - + + - \ No newline at end of file diff --git a/tables.sql b/tables.sql index 6a22f7a..18ac8e8 100644 --- a/tables.sql +++ b/tables.sql @@ -1,8 +1,91 @@ -CREATE TABLE Usuarios ( - nombre varchar(50) NOT NULL, - correo varchar(150) NOT NULL, - contraseña varchar(50) NOT NULL, - estado varchar(10) NOT NULL, - rol varchar(15) NOT NULL, - CONSTRAINT Usuarios_pk PRIMARY KEY (correo) +create table if not exists usuarios +( + nombre varchar(50) not null, + correo varchar(150) not null + constraint usuarios_pk + primary key, + contraseña varchar(50) not null, + estado varchar(10) not null, + rol varchar(15) ); + +create table if not exists iniciativas +( + id integer not null + constraint iniciativas_pk + primary key, + nombre varchar(150) not null, + area varchar(50) not null, + estado varchar(20) not null, + proponente varchar(150) not null + constraint iniciativas_usuarios + references usuarios, + fecha_creacion date not null, + fecha_finalizacion date not null, + descripcion varchar(360) not null +); + +create table if not exists palabras_clave +( + id integer not null + constraint palabras_clave_pk + primary key, + palabra_clave varchar(20) not null, + iniciativa integer not null + constraint palabras_clave_iniciativas + references iniciativas +); + +create table if not exists votos +( + id integer not null + constraint votos_pk + primary key, + iniciativa integer not null + constraint votos_iniciativas + references iniciativas, + autor varchar(150) not null + constraint usuarios_votos + references usuarios +); + +create table if not exists comentarios +( + id integer not null + constraint comentarios_pk + primary key, + autor varchar(150) not null + constraint comentarios_usuarios + references usuarios, + contenido varchar(500) not null, + fecha_creacion date not null, + iniciativa integer not null + constraint iniciativas_comentarios + references iniciativas +); + +create table if not exists estrellas +( + id integer not null + constraint estrellas_pk + primary key, + interesado varchar(150) not null + constraint grupo_interes_usuarios + references usuarios, + iniciativa integer not null + constraint estrellas_iniciativas + references iniciativas +); + +create table if not exists integrantes_proyecto +( + id integer not null + constraint integrantes_proyecto_pk + primary key, + integrante varchar(150) not null + constraint equipo_proyectos_usuarios + references usuarios, + iniciativa integer not null + constraint integrantes_proyecto_iniciativas + references iniciativas +); \ No newline at end of file From 7db9ab774380abe7cb4075d107334a4f7b27fa27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Davor=20Cort=C3=A9s?= Date: Sat, 18 Apr 2020 21:57:27 -0500 Subject: [PATCH 09/15] Backend Sprint 1 Terminado y Archivos de prueba configurados --- .../eci/cvds/guice/GuiceContextListener.java | 5 -- .../eci/cvds/persistence/IniciativaDAO.java | 5 +- .../persistence/PersistenceException.java | 8 ++ .../edu/eci/cvds/persistence/UsuarioDAO.java | 3 +- .../mybatisimpl/mappers/IniciativaMapper.java | 3 + .../mybatisimpl/mappers/UsuarioMapper.java | 3 + .../ServiciosBancoDeProyectosFactory.java | 77 +++++++++++++++++++ .../cvds/services/ServiciosIniciativa.java | 3 + .../services/ServiciosIniciativaFactory.java | 4 - .../eci/cvds/services/ServiciosUsuario.java | 2 + .../services/ServiciosUsuarioFactory.java | 58 -------------- .../impl/ServiciosIniciativaImpl.java | 26 ++++++- .../impl/ServiciosIniciativaSTUB.java | 30 -------- .../services/impl/ServiciosUsuarioImpl.java | 23 +++++- .../services/impl/ServiciosUsuarioSTUB.java | 25 ------ .../resources/mappers/IniciativaMapper.xml | 14 ++++ src/test/java/LoginTest.java | 4 - src/test/java/ServiciosIniciativaTest.java | 24 ++++++ src/test/java/ServiciosUsuarioTest.java | 18 +++++ 19 files changed, 203 insertions(+), 132 deletions(-) create mode 100644 src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectosFactory.java delete mode 100644 src/main/java/edu/eci/cvds/services/ServiciosIniciativaFactory.java delete mode 100644 src/main/java/edu/eci/cvds/services/ServiciosUsuarioFactory.java delete mode 100644 src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaSTUB.java delete mode 100644 src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioSTUB.java delete mode 100644 src/test/java/LoginTest.java create mode 100644 src/test/java/ServiciosIniciativaTest.java create mode 100644 src/test/java/ServiciosUsuarioTest.java diff --git a/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java b/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java index 35711f6..b1e6b78 100644 --- a/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java +++ b/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java @@ -35,16 +35,11 @@ protected void initialize() { install(JdbcHelper.PostgreSQL); setEnvironmentId("development"); setClassPathResource("mybatis-config.xml"); - // TODO Add service class associated to Stub implementation //Services - bind(ServiciosIniciativa.class).to(ServiciosIniciativaImpl.class); bind(ServiciosUsuario.class).to(ServiciosUsuarioImpl.class); bind(ServiciosIniciativa.class).to(ServiciosIniciativaImpl.class); - //Persistence - bind(UsuarioDAO.class).to(MyBatisUsuarioDAO.class); - bind(IniciativaDAO.class).to(MyBatisIniciativaDAO.class); //Authentication bind(SessionLogger.class).to(ShiroSession.class); diff --git a/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java b/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java index a5e0d07..5c1c68a 100644 --- a/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java +++ b/src/main/java/edu/eci/cvds/persistence/IniciativaDAO.java @@ -2,14 +2,17 @@ import edu.eci.cvds.entities.EstadoIniciativa; import edu.eci.cvds.entities.Iniciativa; -import org.apache.ibatis.exceptions.PersistenceException; +import org.mybatis.guice.transactional.Transactional; + import java.util.List; public interface IniciativaDAO { + @Transactional void insertarIniciativa(Iniciativa i) throws PersistenceException; + @Transactional void modificarIniciativa(int id, EstadoIniciativa estado) throws PersistenceException; Iniciativa cargarIniciativa(int id) throws PersistenceException; diff --git a/src/main/java/edu/eci/cvds/persistence/PersistenceException.java b/src/main/java/edu/eci/cvds/persistence/PersistenceException.java index 18dd2d8..4559bcc 100644 --- a/src/main/java/edu/eci/cvds/persistence/PersistenceException.java +++ b/src/main/java/edu/eci/cvds/persistence/PersistenceException.java @@ -14,5 +14,13 @@ public PersistenceException(String message, Throwable cause) { public PersistenceException(String message) { super(message); } + + public PersistenceException(Throwable cause) { + super(cause); + } + + public PersistenceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } } diff --git a/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java b/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java index c50f90d..a98d6ea 100644 --- a/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java +++ b/src/main/java/edu/eci/cvds/persistence/UsuarioDAO.java @@ -2,12 +2,13 @@ import edu.eci.cvds.entities.Rol; import edu.eci.cvds.entities.Usuario; -import org.apache.ibatis.exceptions.PersistenceException; +import org.mybatis.guice.transactional.Transactional; import java.util.List; public interface UsuarioDAO { + @Transactional void modificarUsuario(String correo, Rol r) throws PersistenceException; Usuario cargarUsuario(String correo) throws PersistenceException; diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java index fb66c49..89285a7 100644 --- a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/IniciativaMapper.java @@ -2,13 +2,16 @@ import edu.eci.cvds.entities.EstadoIniciativa; import edu.eci.cvds.entities.Iniciativa; +import org.mybatis.guice.transactional.Transactional; import java.util.List; public interface IniciativaMapper { + @Transactional void registrarIniciativa(Iniciativa i); + @Transactional void modificarEstadoIniciativa(int id, EstadoIniciativa estado); Iniciativa consultarIniciativa(int id); diff --git a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java index 86bca0c..dfe87dc 100644 --- a/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java +++ b/src/main/java/edu/eci/cvds/persistence/mybatisimpl/mappers/UsuarioMapper.java @@ -7,13 +7,16 @@ import edu.eci.cvds.entities.Rol; import org.apache.ibatis.annotations.Param; import edu.eci.cvds.entities.Usuario; +import org.mybatis.guice.transactional.Transactional; public interface UsuarioMapper { + public Usuario consultarUsuario(@Param("correo") String correo); public List consultarUsuarios(); + @Transactional public void modificarRolUsuario(@Param("correo") String correo, @Param("rol") Rol r); } diff --git a/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectosFactory.java b/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectosFactory.java new file mode 100644 index 0000000..b2b42d7 --- /dev/null +++ b/src/main/java/edu/eci/cvds/services/ServiciosBancoDeProyectosFactory.java @@ -0,0 +1,77 @@ +package edu.eci.cvds.services; + +import com.google.inject.Injector; +import edu.eci.cvds.persistence.IniciativaDAO; +import edu.eci.cvds.persistence.UsuarioDAO; +import edu.eci.cvds.persistence.mybatisimpl.MyBatisIniciativaDAO; +import edu.eci.cvds.persistence.mybatisimpl.MyBatisUsuarioDAO; +import edu.eci.cvds.services.impl.ServiciosIniciativaImpl; +import edu.eci.cvds.services.impl.ServiciosUsuarioImpl; +import org.mybatis.guice.XMLMyBatisModule; + +import java.util.Optional; + +import static com.google.inject.Guice.createInjector; + +public class ServiciosBancoDeProyectosFactory { + + private static ServiciosBancoDeProyectosFactory instance = new ServiciosBancoDeProyectosFactory(); + + private static Optional optInjector; + + private Injector myBatisInjector(String env, String pathResource) { + + return createInjector(new XMLMyBatisModule() { + @Override + protected void initialize() { + setEnvironmentId(env); + setClassPathResource(pathResource); + bind(UsuarioDAO.class).to(MyBatisUsuarioDAO.class); + bind(ServiciosUsuario.class).to(ServiciosUsuarioImpl.class); + bind(IniciativaDAO.class).to(MyBatisIniciativaDAO.class); + bind(ServiciosIniciativa.class).to(ServiciosIniciativaImpl.class); + } + }); + } + + private ServiciosBancoDeProyectosFactory(){ + optInjector = Optional.empty(); + } + + + public ServiciosIniciativa getServiciosIniciativa(){ + if (!optInjector.isPresent()) { + optInjector = Optional.of(myBatisInjector("development","mybatis-config.xml")); + } + + return optInjector.get().getInstance(ServiciosIniciativa.class); + } + + public ServiciosIniciativa getServiciosIniciativaTesting(){ + if (!optInjector.isPresent()) { + optInjector = Optional.of(myBatisInjector("test","mybatis-config-h2.xml")); + } + + return optInjector.get().getInstance(ServiciosIniciativa.class); + } + + public ServiciosUsuario getServiciosUsuario(){ + if (!optInjector.isPresent()) { + optInjector = Optional.of(myBatisInjector("development","mybatis-config.xml")); + } + + return optInjector.get().getInstance(ServiciosUsuario.class); + } + + public ServiciosUsuario getServiciosUsuarioTesting(){ + if (!optInjector.isPresent()) { + optInjector = Optional.of(myBatisInjector("test","mybatis-config-h2.xml")); + } + + return optInjector.get().getInstance(ServiciosUsuario.class); + } + + public static ServiciosBancoDeProyectosFactory getInstance(){ + return instance; + } +} diff --git a/src/main/java/edu/eci/cvds/services/ServiciosIniciativa.java b/src/main/java/edu/eci/cvds/services/ServiciosIniciativa.java index 242c441..6590ddd 100644 --- a/src/main/java/edu/eci/cvds/services/ServiciosIniciativa.java +++ b/src/main/java/edu/eci/cvds/services/ServiciosIniciativa.java @@ -2,13 +2,16 @@ import edu.eci.cvds.entities.EstadoIniciativa; import edu.eci.cvds.entities.Iniciativa; +import org.mybatis.guice.transactional.Transactional; import java.util.List; public interface ServiciosIniciativa { + @Transactional void crearIniciativa(Iniciativa i) throws ExcepcionBancoDeProyectos; + @Transactional void modificarIniciativa(int id, EstadoIniciativa estado) throws ExcepcionBancoDeProyectos; Iniciativa buscarIniciativa(int id) throws ExcepcionBancoDeProyectos; diff --git a/src/main/java/edu/eci/cvds/services/ServiciosIniciativaFactory.java b/src/main/java/edu/eci/cvds/services/ServiciosIniciativaFactory.java deleted file mode 100644 index ab1701b..0000000 --- a/src/main/java/edu/eci/cvds/services/ServiciosIniciativaFactory.java +++ /dev/null @@ -1,4 +0,0 @@ -package edu.eci.cvds.services; - -public class ServiciosIniciativaFactory { -} diff --git a/src/main/java/edu/eci/cvds/services/ServiciosUsuario.java b/src/main/java/edu/eci/cvds/services/ServiciosUsuario.java index 33b61ac..3a4e917 100644 --- a/src/main/java/edu/eci/cvds/services/ServiciosUsuario.java +++ b/src/main/java/edu/eci/cvds/services/ServiciosUsuario.java @@ -2,11 +2,13 @@ import edu.eci.cvds.entities.Rol; import edu.eci.cvds.entities.Usuario; +import org.mybatis.guice.transactional.Transactional; import java.util.List; public interface ServiciosUsuario { + @Transactional void modificarUsuario(String correo, Rol r) throws ExcepcionBancoDeProyectos; Usuario buscarUsuario(String correo) throws ExcepcionBancoDeProyectos; diff --git a/src/main/java/edu/eci/cvds/services/ServiciosUsuarioFactory.java b/src/main/java/edu/eci/cvds/services/ServiciosUsuarioFactory.java deleted file mode 100644 index 78af60c..0000000 --- a/src/main/java/edu/eci/cvds/services/ServiciosUsuarioFactory.java +++ /dev/null @@ -1,58 +0,0 @@ -package edu.eci.cvds.services; - -import com.google.inject.Inject; -import com.google.inject.Injector; -import edu.eci.cvds.persistence.UsuarioDAO; -import edu.eci.cvds.persistence.mybatisimpl.MyBatisUsuarioDAO; -import edu.eci.cvds.services.impl.ServiciosUsuarioImpl; -import org.mybatis.guice.XMLMyBatisModule; -import org.mybatis.guice.datasource.helper.JdbcHelper; - -import java.util.Optional; - -import static com.google.inject.Guice.createInjector; - -public class ServiciosUsuarioFactory { - - private static ServiciosUsuarioFactory instance = new ServiciosUsuarioFactory(); - - private static Optional optionalInjector; - - private Injector myBatisInjector(String env, String pathResource){ - return createInjector(new XMLMyBatisModule() { - @Override - protected void initialize() { - setEnvironmentId(env); - install(JdbcHelper.PostgreSQL); - setClassPathResource(pathResource); - bind(UsuarioDAO.class).to(MyBatisUsuarioDAO.class); - bind(ServiciosUsuario.class).to(ServiciosUsuarioImpl.class); - } - }); - } - - private ServiciosUsuarioFactory(){ - optionalInjector = Optional.empty(); - } - - public ServiciosUsuario getServiciosUsuario(){ - if (!optionalInjector.isPresent()) { - optionalInjector = Optional.of(myBatisInjector("development","mybatis-config.xml")); - } - - return optionalInjector.get().getInstance(ServiciosUsuario.class); - } - - public ServiciosUsuario getServiciosUsuarioTesting(){ - if (!optionalInjector.isPresent()) { - optionalInjector = Optional.of(myBatisInjector("development","mybatis-config-h2.xml")); - } - - return optionalInjector.get().getInstance(ServiciosUsuario.class); - } - - - public static ServiciosUsuarioFactory getInstance(){ - return instance; - } -} diff --git a/src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaImpl.java b/src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaImpl.java index fd60e7d..af39434 100644 --- a/src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaImpl.java +++ b/src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaImpl.java @@ -4,9 +4,11 @@ import edu.eci.cvds.entities.EstadoIniciativa; import edu.eci.cvds.entities.Iniciativa; import edu.eci.cvds.persistence.IniciativaDAO; +import edu.eci.cvds.persistence.PersistenceException; import edu.eci.cvds.services.ExcepcionBancoDeProyectos; import edu.eci.cvds.services.ServiciosIniciativa; + import java.util.List; public class ServiciosIniciativaImpl implements ServiciosIniciativa { @@ -15,21 +17,41 @@ public class ServiciosIniciativaImpl implements ServiciosIniciativa { @Override public void crearIniciativa(Iniciativa i) throws ExcepcionBancoDeProyectos { + try{ + iniciativaDAO.insertarIniciativa(i); + }catch (PersistenceException e){ + throw new ExcepcionBancoDeProyectos("Error de Registro:"+e.getLocalizedMessage(), e); + } } @Override public void modificarIniciativa(int id, EstadoIniciativa estado) throws ExcepcionBancoDeProyectos { + try{ + iniciativaDAO.modificarIniciativa(id, estado); + }catch (PersistenceException e){ + throw new ExcepcionBancoDeProyectos("Error de Modificacion:"+e.getLocalizedMessage(), e); + } } @Override public Iniciativa buscarIniciativa(int id) throws ExcepcionBancoDeProyectos { - return null; + try { + return iniciativaDAO.cargarIniciativa(id); + }catch (PersistenceException e){ + throw new ExcepcionBancoDeProyectos("Error de Busqueda:"+e.getLocalizedMessage(), e); + } + } @Override public List buscarIniciativas() throws ExcepcionBancoDeProyectos { - return null; + try { + return iniciativaDAO.cargarIniciativas(); + } catch (PersistenceException e){ + throw new ExcepcionBancoDeProyectos("Error de Busqueda:"+e.getLocalizedMessage(), e); + } + } } diff --git a/src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaSTUB.java b/src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaSTUB.java deleted file mode 100644 index a83ce2f..0000000 --- a/src/main/java/edu/eci/cvds/services/impl/ServiciosIniciativaSTUB.java +++ /dev/null @@ -1,30 +0,0 @@ -package edu.eci.cvds.services.impl; - -import edu.eci.cvds.entities.EstadoIniciativa; -import edu.eci.cvds.entities.Iniciativa; -import edu.eci.cvds.services.ExcepcionBancoDeProyectos; -import edu.eci.cvds.services.ServiciosIniciativa; - -import java.util.List; - -public class ServiciosIniciativaSTUB implements ServiciosIniciativa { - @Override - public void crearIniciativa(Iniciativa i) throws ExcepcionBancoDeProyectos { - - } - - @Override - public void modificarIniciativa(int id, EstadoIniciativa estado) throws ExcepcionBancoDeProyectos { - - } - - @Override - public Iniciativa buscarIniciativa(int id) throws ExcepcionBancoDeProyectos { - return null; - } - - @Override - public List buscarIniciativas() throws ExcepcionBancoDeProyectos { - return null; - } -} diff --git a/src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioImpl.java b/src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioImpl.java index dc357f5..b980404 100644 --- a/src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioImpl.java +++ b/src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioImpl.java @@ -3,28 +3,47 @@ import com.google.inject.Inject; import edu.eci.cvds.entities.Rol; import edu.eci.cvds.entities.Usuario; +import edu.eci.cvds.persistence.PersistenceException; import edu.eci.cvds.persistence.UsuarioDAO; import edu.eci.cvds.services.ExcepcionBancoDeProyectos; import edu.eci.cvds.services.ServiciosUsuario; + import java.util.List; public class ServiciosUsuarioImpl implements ServiciosUsuario { @Inject UsuarioDAO usuarioDAO; + @Override public void modificarUsuario(String correo, Rol r) throws ExcepcionBancoDeProyectos { + try { + usuarioDAO.modificarUsuario(correo,r); + } catch (PersistenceException e){ + throw new ExcepcionBancoDeProyectos("Error de Modificacion:"+e.getLocalizedMessage(), e); + } + } @Override public Usuario buscarUsuario(String correo) throws ExcepcionBancoDeProyectos { - return null; + try{ + return usuarioDAO.cargarUsuario(correo); + }catch (PersistenceException e){ + throw new ExcepcionBancoDeProyectos("Error de Busqueda:"+e.getLocalizedMessage(), e); + } + } @Override public List buscarUsuarios() throws ExcepcionBancoDeProyectos { - return null; + try { + return usuarioDAO.cargarUsuarios(); + } catch (PersistenceException e){ + throw new ExcepcionBancoDeProyectos("Error de Busqueda:"+e.getLocalizedMessage(), e); + } + } } diff --git a/src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioSTUB.java b/src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioSTUB.java deleted file mode 100644 index cc0add7..0000000 --- a/src/main/java/edu/eci/cvds/services/impl/ServiciosUsuarioSTUB.java +++ /dev/null @@ -1,25 +0,0 @@ -package edu.eci.cvds.services.impl; - -import edu.eci.cvds.entities.Rol; -import edu.eci.cvds.entities.Usuario; -import edu.eci.cvds.services.ExcepcionBancoDeProyectos; -import edu.eci.cvds.services.ServiciosUsuario; - -import java.util.List; - -public class ServiciosUsuarioSTUB implements ServiciosUsuario { - @Override - public void modificarUsuario(String correo, Rol r) throws ExcepcionBancoDeProyectos { - - } - - @Override - public Usuario buscarUsuario(String correo) throws ExcepcionBancoDeProyectos { - return null; - } - - @Override - public List buscarUsuarios() throws ExcepcionBancoDeProyectos { - return null; - } -} diff --git a/src/main/resources/mappers/IniciativaMapper.xml b/src/main/resources/mappers/IniciativaMapper.xml index 1170c82..2e61753 100644 --- a/src/main/resources/mappers/IniciativaMapper.xml +++ b/src/main/resources/mappers/IniciativaMapper.xml @@ -29,6 +29,20 @@ WHERE i.proponente=u.correo and p.iniciativa = i.id + + diff --git a/src/test/java/LoginTest.java b/src/test/java/LoginTest.java deleted file mode 100644 index 0ba0b03..0000000 --- a/src/test/java/LoginTest.java +++ /dev/null @@ -1,4 +0,0 @@ -public class LoginTest { - - -} \ No newline at end of file diff --git a/src/test/java/ServiciosIniciativaTest.java b/src/test/java/ServiciosIniciativaTest.java new file mode 100644 index 0000000..03aaf9c --- /dev/null +++ b/src/test/java/ServiciosIniciativaTest.java @@ -0,0 +1,24 @@ +import com.google.inject.Inject; +import edu.eci.cvds.services.ServiciosBancoDeProyectosFactory; +import edu.eci.cvds.services.ServiciosIniciativa; +import org.apache.ibatis.session.SqlSession; +import org.junit.Before; +import org.junit.Test; +import org.junit.Assert; + +public class ServiciosIniciativaTest { + @Inject + private SqlSession sqlSession; + + private ServiciosIniciativa serviciosIniciativa; + + public ServiciosIniciativaTest(){ + serviciosIniciativa = ServiciosBancoDeProyectosFactory.getInstance().getServiciosIniciativaTesting(); + } + + @Before + public void setUp() throws Exception { + } + + +} diff --git a/src/test/java/ServiciosUsuarioTest.java b/src/test/java/ServiciosUsuarioTest.java new file mode 100644 index 0000000..3b64cb8 --- /dev/null +++ b/src/test/java/ServiciosUsuarioTest.java @@ -0,0 +1,18 @@ +import com.google.inject.Inject; +import edu.eci.cvds.services.ServiciosBancoDeProyectosFactory; +import edu.eci.cvds.services.ServiciosUsuario; +import org.apache.ibatis.session.SqlSession; +import org.junit.Before; +import org.junit.Test; +import org.junit.Assert; + +public class ServiciosUsuarioTest { + @Inject + private SqlSession sqlSession; + + private ServiciosUsuario serviciosUsuario; + + public ServiciosUsuarioTest(){ + serviciosUsuario = ServiciosBancoDeProyectosFactory.getInstance().getServiciosUsuarioTesting(); + } +} From 61d9c1948205873795b81b0deae3cd807bfb317c Mon Sep 17 00:00:00 2001 From: D4v0r Date: Sat, 18 Apr 2020 22:13:48 -0500 Subject: [PATCH 10/15] fix bind GuiceContextListener --- src/main/java/edu/eci/cvds/guice/GuiceContextListener.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java b/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java index b1e6b78..db31d23 100644 --- a/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java +++ b/src/main/java/edu/eci/cvds/guice/GuiceContextListener.java @@ -40,6 +40,9 @@ protected void initialize() { bind(ServiciosUsuario.class).to(ServiciosUsuarioImpl.class); bind(ServiciosIniciativa.class).to(ServiciosIniciativaImpl.class); + //Persistence + bind(UsuarioDAO.class).to(MyBatisUsuarioDAO.class); + bind(IniciativaDAO.class).to(MyBatisIniciativaDAO.class); //Authentication bind(SessionLogger.class).to(ShiroSession.class); From 6c95123a89dfbe71706109de2a3c31a1fb4338ad Mon Sep 17 00:00:00 2001 From: Juan Camilo Date: Sun, 19 Apr 2020 16:29:48 -0500 Subject: [PATCH 11/15] Revert "Merge branch 'camilo' into davor" This reverts commit bcd2c5f343a35b946bf3db71507985c6d07c6deb. From 5a465bb4c87e2ea3e31766eee6d33db23b248be8 Mon Sep 17 00:00:00 2001 From: Juan Camilo Date: Sun, 19 Apr 2020 16:29:48 -0500 Subject: [PATCH 12/15] Revert "Merge branch 'camilo' into davor" This reverts commit bcd2c5f343a35b946bf3db71507985c6d07c6deb. From d3758f30fe117267d7932c60852062fda9ef5d6e Mon Sep 17 00:00:00 2001 From: Juan Camilo Date: Sun, 19 Apr 2020 16:29:48 -0500 Subject: [PATCH 13/15] Revert "Merge branch 'camilo' into davor" This reverts commit bcd2c5f343a35b946bf3db71507985c6d07c6deb. --- .../cvds/services/ServiciosBancoFactory.java | 59 ------------ .../eci/cvds/view/ManejoIniciativaBean.java | 14 --- src/main/webapp/WEB-INF/shiro.ini | 2 +- src/main/webapp/index.xhtml | 34 ++----- src/main/webapp/login.xhtml | 2 +- src/main/webapp/registrarIniciativa.xhtml | 94 +++++-------------- 6 files changed, 34 insertions(+), 171 deletions(-) delete mode 100644 src/main/java/edu/eci/cvds/services/ServiciosBancoFactory.java delete mode 100644 src/main/java/edu/eci/cvds/view/ManejoIniciativaBean.java diff --git a/src/main/java/edu/eci/cvds/services/ServiciosBancoFactory.java b/src/main/java/edu/eci/cvds/services/ServiciosBancoFactory.java deleted file mode 100644 index 67ac5af..0000000 --- a/src/main/java/edu/eci/cvds/services/ServiciosBancoFactory.java +++ /dev/null @@ -1,59 +0,0 @@ -package edu.eci.cvds.services; - -import com.google.inject.Injector; -import edu.eci.cvds.persistence.*; -import edu.eci.cvds.persistence.mybatisimpl.*; -import edu.eci.cvds.services.impl.ServiciosBancoDeProyectosImpl; -import org.mybatis.guice.XMLMyBatisModule; -import org.mybatis.guice.datasource.helper.JdbcHelper; - -import java.util.Optional; - -import static com.google.inject.Guice.createInjector; - -public class ServiciosBancoFactory { - - private static ServiciosBancoFactory instance = new ServiciosBancoFactory(); - - private static Optional optInjector; - - private Injector myBatisInjector(String env, String pathResource) { - return createInjector(new XMLMyBatisModule() { - @Override - protected void initialize() { - setEnvironmentId(env); - install(JdbcHelper.PostgreSQL); - setClassPathResource(pathResource); - bind(UsuarioDAO.class).to(MyBatisUsuarioDAO.class); - bind(ServiciosBancoDeProyectos.class).to(ServiciosBancoDeProyectosImpl.class); - } - }); - } - - private ServiciosBancoFactory(){ - optInjector = Optional.empty(); - } - - public ServiciosBancoDeProyectos getServiciosBanco(){ - if (!optInjector.isPresent()) { - optInjector = Optional.of(myBatisInjector("development","mybatis-config.xml")); - } - - return optInjector.get().getInstance(ServiciosBancoDeProyectos.class); - } - - - public ServiciosBancoDeProyectos getServiciosBancoTesting(){ - if (!optInjector.isPresent()) { - optInjector = Optional.of(myBatisInjector("development","mybatis-config.xml")); - } - - return optInjector.get().getInstance(ServiciosBancoDeProyectos.class); - } - - - public static ServiciosBancoFactory getInstance(){ - return instance; - } - -} \ No newline at end of file diff --git a/src/main/java/edu/eci/cvds/view/ManejoIniciativaBean.java b/src/main/java/edu/eci/cvds/view/ManejoIniciativaBean.java deleted file mode 100644 index 2775e09..0000000 --- a/src/main/java/edu/eci/cvds/view/ManejoIniciativaBean.java +++ /dev/null @@ -1,14 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package edu.eci.cvds.view; - -/** - * - * @author juaco - */ -public class ManejoIniciativaBean { - -} diff --git a/src/main/webapp/WEB-INF/shiro.ini b/src/main/webapp/WEB-INF/shiro.ini index 0441d70..c3baabe 100644 --- a/src/main/webapp/WEB-INF/shiro.ini +++ b/src/main/webapp/WEB-INF/shiro.ini @@ -29,7 +29,7 @@ authc.loginUrl = /login.xhtml /login.xhtml = authc /recursosTodos.xhtml =anon /visualizarIniciativas.xhtml=anon -/visualizarIniciativasPersona.xhtml=anon +/visualizarIniciativasPersona.xhtml=authc /reservarRecurso.xhtml =authc /login2.xhtml =authc /index.xhtml =authc diff --git a/src/main/webapp/index.xhtml b/src/main/webapp/index.xhtml index 69bc3fa..b9b4e38 100644 --- a/src/main/webapp/index.xhtml +++ b/src/main/webapp/index.xhtml @@ -1,4 +1,4 @@ - + Iniciativas disponibles - - + + - + - - - - - + - - - - - - - - - - - - - - - - - - + + diff --git a/src/main/webapp/login.xhtml b/src/main/webapp/login.xhtml index f6ef2a8..3694324 100644 --- a/src/main/webapp/login.xhtml +++ b/src/main/webapp/login.xhtml @@ -97,7 +97,7 @@ lang="es">

- +
diff --git a/src/main/webapp/registrarIniciativa.xhtml b/src/main/webapp/registrarIniciativa.xhtml index f1ba3fd..b6a2843 100644 --- a/src/main/webapp/registrarIniciativa.xhtml +++ b/src/main/webapp/registrarIniciativa.xhtml @@ -50,7 +50,7 @@ lang="es"> Inicio