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

Se sigue trabajando en el modelo

parent 1ac01801
No related branches found
No related tags found
No related merge requests found
Showing
with 152 additions and 53 deletions
......@@ -55,7 +55,7 @@
<h:outputText value="#{hecho.title}" />
</p:column>
<p:column filterBy="#{gestionHechos.filterDesc}" headerText="Descripción" filterMatchMode="contains">
<h:outputText value="#{hecho.actualState.value}" />
<h:outputText value="#{hecho.description}"/>
</p:column>
<p:column filterBy="#{gestionHechos.filterEstado}" headerText="Estados" filterMatchMode="exact">
<f:facet name="filter">
......@@ -65,7 +65,7 @@
itemValue="#{e.value}"/>
</p:selectOneMenu>
</f:facet>
<h:outputText value="#{hecho.actualState.value}"/>
</p:column>
</p:dataTable>
</h:form>
......
package uy.edu.fing.tse.central.db.dao.fact;
import uy.edu.fing.tse.central.db.entity.Calificacion;
import uy.edu.fing.tse.central.db.entity.Categoria;
import uy.edu.fing.tse.central.db.entity.Estado;
import uy.edu.fing.tse.central.db.entity.Hecho;
import uy.edu.fing.tse.central.db.mapper.MyMapper;
import uy.edu.fing.tse.dto.Fact;
......@@ -31,26 +28,20 @@ public class FactDAOBean implements FactDaoLocal {
@Override
public Fact create(Fact elem) {
final var hecho = MyMapper.INSTANCE.convert(elem);
{
final var query = em.createNamedQuery("Estado.findByValue", Estado.class);
query.setParameter("val", elem.getActualState().getValue());
final var e = query.getSingleResult();
hecho.setActualState(e);
}
if (elem.getScore() != null) {
final var query = em.createNamedQuery("Calificacion.findByValue", Calificacion.class);
query.setParameter("val", elem.getScore().getValue());
final var s = query.getSingleResult();
hecho.setScore(s);
}
if (elem.getCategory() != null) {
final var query = em.createNamedQuery("Categoria.findByName", Categoria.class);
query.setParameter("name", elem.getCategory().getName());
final var c = query.getSingleResult();
hecho.setCategory(c);
}
//
// if (elem.getScore() != null) {
// final var query = em.createNamedQuery("Calificacion.findByValue", Calificacion.class);
// query.setParameter("val", elem.getScore().getValue());
// final var s = query.getSingleResult();
// hecho.setScore(s);
// }
//
// if (elem.getCategory() != null) {
// final var query = em.createNamedQuery("Categoria.findByName", Categoria.class);
// query.setParameter("name", elem.getCategory().getName());
// final var c = query.getSingleResult();
// hecho.setCategory(c);
// }
em.persist(hecho);
em.flush();
......
package uy.edu.fing.tse.central.db.dao.mechanism;
import uy.edu.fing.tse.central.db.entity.Mecanismo;
import uy.edu.fing.tse.central.db.mapper.MyMapper;
import uy.edu.fing.tse.dto.Mechanism;
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 MechanismDAOBean implements MechanismDaoLocal {
@PersistenceContext(unitName = "central")
private EntityManager em;
@PostConstruct
void init() {
//Despues del constructor hace esto
}
@Override
public Mechanism create(Mechanism elem) {
final var r = MyMapper.INSTANCE.convert(elem);
em.persist(r);
em.flush();
return MyMapper.INSTANCE.convert(r);
}
@Override
public Mechanism find(String key) {
final var query = em.createNamedQuery("Calificacion.findByName", Mecanismo.class);
query.setParameter("name", key);
final var r = query.getSingleResult();
return MyMapper.INSTANCE.convert(r);
}
@Override
public Mechanism find(Long id) {
final var r = em.find(Mecanismo.class, id);
return MyMapper.INSTANCE.convert(r);
}
@Override
public List<Mechanism> findAll() {
final var query = em.createNamedQuery("Calificacion.findAll", Mecanismo.class);
final List<Mecanismo> r = query.getResultList();
return r.stream().map(MyMapper.INSTANCE::convert).collect(Collectors.toList());
}
}
package uy.edu.fing.tse.central.db.dao.mechanism;
import uy.edu.fing.tse.central.db.dao.GenericDao;
import uy.edu.fing.tse.dto.Mechanism;
import javax.ejb.Local;
@Local
public interface MechanismDaoLocal extends GenericDao<Mechanism> {
}
package uy.edu.fing.tse.central.db.dao.user;
import uy.edu.fing.tse.central.db.entity.Rol;
import uy.edu.fing.tse.central.db.entity.Usuario;
import uy.edu.fing.tse.central.db.mapper.MyMapper;
import uy.edu.fing.tse.dto.User;
import uy.edu.fing.tse.dto.UserBO;
import uy.edu.fing.tse.dto.UserFO;
import javax.annotation.PostConstruct;
import javax.ejb.Stateless;
......@@ -25,33 +22,14 @@ public class UserDAOBean implements UserDaoLocal {
//Despues del constructor hace esto
}
@Override
public User create(User user) {
if (user instanceof UserBO) return _register((UserBO) user);
else return _register((UserFO) user);
}
private UserFO _register(UserFO user) {
final var newUser = MyMapper.INSTANCE.convert(user);
em.persist(newUser);
em.flush();
return MyMapper.INSTANCE.convert(newUser);
}
private UserBO _register(UserBO user) {
final var newUser = MyMapper.INSTANCE.convert(user);
final var query = em.createNamedQuery("Rol.findByName", Rol.class);
query.setParameter("name", user.getRole().getName());
final var r = query.getSingleResult();
newUser.setRole(r);
em.persist(newUser);
em.flush();
return MyMapper.INSTANCE.convert(newUser);
}
@Override
public User find(String mail) {
final var query = em.createNamedQuery("Usuario.findByMail", Usuario.class);
......
......@@ -4,6 +4,10 @@ import javax.persistence.*;
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@NamedQueries({
@NamedQuery(name = "Mecanismo.findByName", query = "SELECT m FROM Mecanismo m WHERE m.name = :name"),
@NamedQuery(name = "Mecanismo.findAll", query = "SELECT m FROM Mecanismo m")
})
public class Mecanismo {
@Id
......
......@@ -32,6 +32,34 @@ public interface MyMapper {
}
}
default Mecanismo convert(Mechanism u) {
if (u == null) {
return null;
} else if (u instanceof Peripherical) {
return convert((Peripherical) u);
} else {
return convert((MechanismInternal) u);
}
}
default Mechanism convert(Mecanismo u) {
if (u == null) {
return null;
} else if (u instanceof Periferico) {
return convert((Periferico) u);
} else {
return convert((MecanismoInterno) u);
}
}
Peripherical convert(Periferico f);
Periferico convert(Peripherical f);
MechanismInternal convert(MecanismoInterno f);
MecanismoInterno convert(MechanismInternal f);
Hecho convert(Fact f);
Fact convert(Hecho f);
......
......@@ -2,6 +2,7 @@ package uy.edu.fing.tse.central.db.mapper;
import org.junit.Assert;
import org.junit.Test;
import uy.edu.fing.tse.central.db.entity.Periferico;
import uy.edu.fing.tse.dto.*;
public class MyMapperTest {
......@@ -59,4 +60,15 @@ public class MyMapperTest {
"#######################################################\n");
}
@Test
public void convert2() {
final var periferico = new Periferico();
periferico.setName("hola");
final var convert = MyMapper.INSTANCE.convert(periferico);
Assert.assertNotNull(convert);
final var convert2 = MyMapper.INSTANCE.convert(convert);
Assert.assertNotNull(convert2);
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package uy.edu.fing.tse.central.business;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import uy.edu.fing.tse.central.db.dao.category.CategoryDaoLocal;
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;
......@@ -29,7 +30,9 @@ public class BusinessBean implements BusinessLocal, BusinessRemote {
@EJB
private RoleDaoLocal roles;
@EJB
private ScoreDaoLocal calificacion;
private ScoreDaoLocal calificaciones;
@EJB
private CategoryDaoLocal categorias;
@Override
......@@ -51,6 +54,20 @@ public class BusinessBean implements BusinessLocal, BusinessRemote {
public void altaHecho(Fact fact) {
final var history = fact.getHistory();
fact.setHistory(null);
final var state = estados.find(fact.getActualState().getValue());
fact.setActualState(state);
if (fact.getCategory() != null) {
final var cat = categorias.find(fact.getCategory().getName());
fact.setCategory(cat);
}
if (fact.getScore() != null) {
final var score = calificaciones.find(fact.getScore().getValue());
fact.setScore(score);
}
final var fact1 = hechos.create(fact);
LOG.info("");
//hechos.find(fact.getTitle());
......@@ -74,7 +91,7 @@ public class BusinessBean implements BusinessLocal, BusinessRemote {
@Override
public void altaCalificacion(Score e) {
calificacion.create(e);
calificaciones.create(e);
}
@Override
......
......@@ -4,6 +4,7 @@ package uy.edu.fing.tse.central.business.security;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import uy.edu.fing.tse.central.business.common.Secure;
import uy.edu.fing.tse.central.db.dao.role.RoleDaoLocal;
import uy.edu.fing.tse.central.db.dao.user.UserDaoLocal;
import uy.edu.fing.tse.dto.User;
import uy.edu.fing.tse.dto.UserBO;
......@@ -19,7 +20,9 @@ public class SecurityBean implements SecurityLocal, SecurityRemote {
private static final Logger LOG = LoggerFactory.getLogger(Security.class);
@EJB
private UserDaoLocal dao;
private UserDaoLocal users;
@EJB
private RoleDaoLocal roles;
@PostConstruct
void init() {
......@@ -32,14 +35,16 @@ public class SecurityBean implements SecurityLocal, SecurityRemote {
p.setSalt(salt);
final var newPassword = Secure.encriptPBKDF(p.getPassword(), salt);
p.setPassword(newPassword);
dao.create(p);
return dao.find(p.getMail());
final var role = roles.find(p.getRole().getName());
p.setRole(role);
return users.create(p);
}
@Override
public String login(UserBO p) {
//Valido la password
final var user = (UserBO) dao.find(p.getMail());
final var user = (UserBO) users.find(p.getMail());
final var salt = user.getSalt();
final var thisPassword = Secure.encriptPBKDF(p.getPassword(), salt);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment