draft: dev-web - forgotten password token

This commit is contained in:
kmitresse
2024-03-22 10:53:13 +01:00
parent 1e02ad373c
commit 0e7066808b
9 changed files with 375 additions and 3 deletions
@@ -8,6 +8,7 @@ package uppa.project.dao;
import uppa.project.pojo.Game;
import uppa.project.pojo.Player;
import uppa.project.pojo.RecoveryPasswordToken;
import uppa.project.pojo.User;
/**
@@ -21,6 +22,7 @@ public abstract class GameDAOFactory {
protected DAO<User> daoUser = null;
protected DAO<Game> daoGame = null;
protected DAO<Player> daoPlayer = null;
protected DAO<RecoveryPasswordToken> daoRecoveryPasswordToken = null;
/**
* @return le DAO pour la classe/table User
@@ -43,4 +45,6 @@ public abstract class GameDAOFactory {
*/
public abstract DAO<Player> getDAOPlayer() throws DAOException;
public abstract DAO<RecoveryPasswordToken> getDAORecoveryPasswordToken() throws DAOException;
}
@@ -0,0 +1,78 @@
/*
* DAO_JPA_RecoveryPasswordToken.java, 20/03/2024
* UPPA M1 TI 2023-2024
* Pas de copyright, aucun droits
*/
package uppa.project.dao.jpa;
import jakarta.persistence.EntityManager;
import jakarta.persistence.TypedQuery;
import java.math.BigDecimal;
import java.util.List;
import uppa.project.dao.DAO;
import uppa.project.dao.DAOException;
import uppa.project.pojo.RecoveryPasswordToken;
import uppa.project.provider.EntityManagerProvider;
/**
* DAO pour les utilisateurs
*
* @author Kévin Mitresse
* @author Lucàs Vabre
* @see RecoveryPasswordToken
* @see DAO
*/
public class DAO_JPA_RecoveryPasswordToken extends DAO<RecoveryPasswordToken> {
/**
* Gestionnaire d'entités
*/
private final EntityManager entityManager;
public DAO_JPA_RecoveryPasswordToken() throws DAOException {
this.entityManager = EntityManagerProvider.getInstance();
}
@Override
public RecoveryPasswordToken findById(int id) throws DAOException {
RecoveryPasswordToken result = entityManager.find(RecoveryPasswordToken.class, new BigDecimal(id));
entityManager.flush();
return result;
}
public RecoveryPasswordToken[] findByField(String field, String value) throws DAOException {
String sqlQuery = String.format("SELECT r FROM RecoveryPasswordToken r WHERE r.%s = (:val)", field);
TypedQuery<RecoveryPasswordToken> query = entityManager.createQuery(sqlQuery, RecoveryPasswordToken.class);
query.setParameter("val", value);
List<RecoveryPasswordToken> results = query.getResultList();
return results.toArray(new RecoveryPasswordToken[0]);
}
@Override
public RecoveryPasswordToken[] findAll() throws DAOException {
TypedQuery<RecoveryPasswordToken> query = entityManager.createQuery("SELECT r FROM RecoveryPasswordToken r", RecoveryPasswordToken.class);
List<RecoveryPasswordToken> results = query.getResultList();
return results.toArray(new RecoveryPasswordToken[0]);
}
@Override
public void create(RecoveryPasswordToken data) throws DAOException {
update(data);
}
@Override
public void update(RecoveryPasswordToken data) throws DAOException {
entityManager.getTransaction().begin();
entityManager.merge(data);
entityManager.getTransaction().commit();
}
@Override
public void delete(RecoveryPasswordToken data) throws DAOException {
entityManager.getTransaction().begin();
entityManager.remove(data);
entityManager.getTransaction().commit();
}
}
@@ -36,4 +36,10 @@ public class Game_JPA_DAO_Factory extends GameDAOFactory {
if (daoPlayer == null) daoPlayer = new DAO_JPA_Player();
return daoPlayer;
}
@Override
public DAO<RecoveryPasswordToken> getDAORecoveryPasswordToken() throws DAOException {
if (daoRecoveryPasswordToken == null) daoRecoveryPasswordToken= new DAO_JPA_RecoveryPasswordToken();
return daoRecoveryPasswordToken;
}
}