diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java new file mode 100644 index 0000000000000000000000000000000000000000..3f7a648ec2e866f702256e4d04df6f2a08f78b86 --- /dev/null +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java @@ -0,0 +1,52 @@ +package uy.edu.fing.tse.central.db.dao.score; + +import uy.edu.fing.tse.central.db.entity.Calificacion; +import uy.edu.fing.tse.central.db.mapper.MyMapper; +import uy.edu.fing.tse.dto.Score; + +import javax.annotation.PostConstruct; +import javax.ejb.Stateless; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import java.util.List; +import java.util.stream.Collectors; + +@Stateless +public class ScoreDAOBean implements ScoreDaoLocal { + + @PersistenceContext(unitName = "central") + private EntityManager em; + + @PostConstruct + void init() { + //Despues del constructor hace esto + } + + @Override + public void create(Score elem) { + final var r = MyMapper.INSTANCE.convert(elem); + em.persist(r); + em.flush(); + } + + @Override + public Score find(String key) { + final var query = em.createNamedQuery("Calificacion.findByValue", Calificacion.class); + query.setParameter("val", key); + final var r = query.getSingleResult(); + return MyMapper.INSTANCE.convert(r); + } + + @Override + public Score find(Long id) { + final var r = em.find(Calificacion.class, id); + return MyMapper.INSTANCE.convert(r); + } + + @Override + public List<Score> findAll() { + final var query = em.createNamedQuery("Calificacion.findAll", Calificacion.class); + final List<Calificacion> r = query.getResultList(); + return r.stream().map(MyMapper.INSTANCE::convert).collect(Collectors.toList()); + } +} diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDaoLocal.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDaoLocal.java new file mode 100644 index 0000000000000000000000000000000000000000..d904c08c954cc54308b5b3a906daa7d9fd80c5be --- /dev/null +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDaoLocal.java @@ -0,0 +1,11 @@ +package uy.edu.fing.tse.central.db.dao.score; + +import uy.edu.fing.tse.central.db.dao.GenericDao; +import uy.edu.fing.tse.dto.Score; + +import javax.ejb.Local; + +@Local +public interface ScoreDaoLocal extends GenericDao<Score> { + +} diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java index 711f76afbdeb4163c4db1b7a59ae6e95c8c22592..43569f15ccf61a06b2dbd0d42549c2ca76d601e0 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java @@ -27,7 +27,7 @@ public class UserDAOBean implements UserDaoLocal { @Override - public void register(User user) { + public void create(User user) { if (user instanceof UserBO) _register((UserBO) user); else _register((UserFO) user); } @@ -58,6 +58,12 @@ public class UserDAOBean implements UserDaoLocal { return MyMapper.INSTANCE.convert(usuario); } + @Override + public User find(Long id) { + final var e = em.find(Usuario.class, id); + return MyMapper.INSTANCE.convert(e); + } + @Override public List<User> findAll() { final var query = em.createNamedQuery("Usuario.findAll", Usuario.class); diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDaoLocal.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDaoLocal.java index 0849cb6eb96bf5e85150135801fefdd81aae4e90..2fc42260ffdf63f8ab10479fea98afc8106f8262 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDaoLocal.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDaoLocal.java @@ -1,16 +1,11 @@ package uy.edu.fing.tse.central.db.dao.user; +import uy.edu.fing.tse.central.db.dao.GenericDao; import uy.edu.fing.tse.dto.User; import javax.ejb.Local; -import java.util.List; @Local -public interface UserDaoLocal { +public interface UserDaoLocal extends GenericDao<User> { - void register(User user); - - User find(String mail); - - List<User> findAll(); } diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Calificacion.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Calificacion.java index 7a9167040073525421e90c89d865012f7e54f5c2..423e8a0c9952c1f5fb6b3126ff89b6c9d08dc01b 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Calificacion.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Calificacion.java @@ -6,6 +6,10 @@ import javax.persistence.*; * Esta es la que puede ser vergonzosa, verdad a media, verdad, falsa */ @Entity +@NamedQueries({ + @NamedQuery(name = "Calificacion.findAll", query = "select e from Calificacion e"), + @NamedQuery(name = "Calificacion.findByValue", query = "select e from Calificacion e where e.value = :val") +}) public final class Calificacion { @Id diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/UsuarioBO.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/UsuarioBO.java index b0126c1a7455e764805d4677016dac06a041ad7f..035fe971f50c2f56432169e2aeee702c234cffc4 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/UsuarioBO.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/UsuarioBO.java @@ -2,6 +2,7 @@ package uy.edu.fing.tse.central.db.entity; import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.ManyToOne; @Entity @@ -13,7 +14,7 @@ public class UsuarioBO extends Usuario { @Column(nullable = false) private String password; - @ManyToOne + @ManyToOne(fetch = FetchType.EAGER) private Rol role; public String getSalt() { diff --git a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/Business.java b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/Business.java index 1092ee4f45a58a733873a578c55394fa9ef62c8d..be444124b67c4ee09b21b4615ea32e9a0be39abb 100644 --- a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/Business.java +++ b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/Business.java @@ -19,5 +19,9 @@ public interface Business extends Serializable { void altaRol(Role role); void altaEstado(State state); + + List<Role> listarRoles(); + + void altaCalificacion(Score e); } diff --git a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java index 88af433d77fc0806630f58671e4ab94b850790d1..cd54e94742c282d13b636da4df2478d55efd735f 100644 --- a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java +++ b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java @@ -5,6 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import uy.edu.fing.tse.central.db.dao.fact.FactDaoLocal; import uy.edu.fing.tse.central.db.dao.role.RoleDaoLocal; +import uy.edu.fing.tse.central.db.dao.score.ScoreDaoLocal; import uy.edu.fing.tse.central.db.dao.state.StateDaoLocal; import uy.edu.fing.tse.central.db.dao.user.UserDaoLocal; import uy.edu.fing.tse.dto.*; @@ -28,6 +29,8 @@ public class BusinessBean implements BusinessLocal, BusinessRemote { private StateDaoLocal estados; @EJB private RoleDaoLocal roles; + @EJB + private ScoreDaoLocal calificacion; @PostConstruct void init() { @@ -65,5 +68,14 @@ public class BusinessBean implements BusinessLocal, BusinessRemote { roles.create(role); } + @Override + public List<Role> listarRoles() { + return roles.findAll(); + } + + @Override + public void altaCalificacion(Score e) { + calificacion.create(e); + } } diff --git a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/security/SecurityBean.java b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/security/SecurityBean.java index 5d835dc2c1720e2e6734c5dafb705b01fd22f4e4..febfcb09ec837f31de46657b195bab97f1bb5df9 100644 --- a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/security/SecurityBean.java +++ b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/security/SecurityBean.java @@ -32,7 +32,7 @@ public class SecurityBean implements SecurityLocal, SecurityRemote { p.setSalt(salt); final var newPassword = Secure.encriptPBKDF(p.getPassword(), salt); p.setPassword(newPassword); - dao.register(p); + dao.create(p); return dao.find(p.getMail()); } diff --git a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java index 93784719bfa039eb10b126e41293decdcecfc8ec..9867e16e73bd6333f4e1c0846a948dd44aa20587 100644 --- a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java +++ b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java @@ -23,7 +23,9 @@ public class Config { @PostConstruct public void start() { initRole(); - //initUsers(); + initUsers(); + initEstados(); + initScore(); //initFacts(); } @@ -73,6 +75,52 @@ public class Config { users.register(u); } + private void initEstados() { + //Nuevo, aComprobar, enProceso, Verificado, Publicado, Cancelado + State e = new State(); + e.setValue("Nuevo"); + negocio.altaEstado(e); + + e = new State(); + e.setValue("A Comprobar"); + negocio.altaEstado(e); + + e = new State(); + e.setValue("En Proceso"); + negocio.altaEstado(e); + + e = new State(); + e.setValue("Verificado"); + negocio.altaEstado(e); + + e = new State(); + e.setValue("Publicado"); + negocio.altaEstado(e); + + e = new State(); + e.setValue("Cancelado"); + negocio.altaEstado(e); + } + + private void initScore() { + //vergonzosa, verdad a media, verdad, falsa + Score e = new Score(); + e.setValue("vergonzosa"); + negocio.altaCalificacion(e); + + e = new Score(); + e.setValue("Verdad a medias"); + negocio.altaCalificacion(e); + + e = new Score(); + e.setValue("Verdad"); + negocio.altaCalificacion(e); + + e = new Score(); + e.setValue("Falsa"); + negocio.altaCalificacion(e); + } + private void initFacts() { String[] titulos = new String[10]; String[] descripciones = new String[10];