Skip to content
Snippets Groups Projects
Commit 7bf44bf5 authored by Falucho's avatar Falucho
Browse files

Mas Modelo

parent 9f132b07
No related branches found
No related tags found
No related merge requests found
Showing
with 144 additions and 11 deletions
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());
}
}
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> {
}
......@@ -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);
......
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();
}
......@@ -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
......
......@@ -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() {
......
......@@ -19,5 +19,9 @@ public interface Business extends Serializable {
void altaRol(Role role);
void altaEstado(State state);
List<Role> listarRoles();
void altaCalificacion(Score e);
}
......@@ -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);
}
}
......@@ -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());
}
......
......@@ -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];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment