/*
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
*/
|
package com.megatim.apifdxweb.dao.impl.tmp;
|
|
import com.megatim.apifdxweb.dao.ifaces.tmp.TokenTmpDAO;
|
import com.megatim.apifdxweb.model.tmp.StatutTmp;
|
import com.megatim.apifdxweb.model.tmp.TokenTmp;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
import java.util.Optional;
|
import javax.ejb.Stateless;
|
import javax.persistence.EntityManager;
|
import javax.persistence.PersistenceContext;
|
import javax.persistence.Query;
|
|
/**
|
*
|
* @author ASUS
|
*/
|
@Stateless
|
public class TokenTmpDAOImpl implements TokenTmpDAO {
|
|
@PersistenceContext(unitName = "fdxPU")
|
protected EntityManager em;
|
|
@Override
|
public Class<TokenTmp> getManagedEntityClass() {
|
return TokenTmp.class;
|
}
|
|
@Override
|
public EntityManager getEntityManager() {
|
return em;
|
}
|
|
@Override
|
public TokenTmp getById(String id) {
|
Query query = em.createQuery("SELECT t from TokenTmp t WHERE t.id = :id");
|
query.setParameter("id", id);
|
|
Optional<TokenTmp> optionalTokenTmp = query.getResultList().stream().findFirst();
|
return optionalTokenTmp.isPresent() ? optionalTokenTmp.get() : null;
|
}
|
|
@Override
|
public List<TokenTmp> getByStatutTmp(StatutTmp statutTmp) {
|
Query query = em.createQuery("SELECT t from TokenTmp t WHERE t.statutTmp = :statut");
|
query.setParameter("statut", statutTmp);
|
return query.getResultList();
|
}
|
|
@Override
|
public List<TokenTmp> getExpiredToken() {
|
Query query = em.createQuery("SELECT t from TokenTmp t WHERE t.dateExpiration <= :now OR t.statutTmp = :statut");
|
query.setParameter("now", LocalDateTime.now());
|
query.setParameter("statut", StatutTmp.EXPIRE);
|
|
return query.getResultList();
|
}
|
|
@Override
|
public TokenTmp getByParticipantAndTypeFichier(String codeParticipant, String codeTypeFichier) {
|
Optional<TokenTmp> optTokenTmp = em.createQuery("SELECT t from TokenTmp t "
|
+ "WHERE t.codeParticipant = :codeParticipant AND t.codeTypeFichier = :codeTypeFichier AND t.statutTmp = :statut AND t.dateExpiration > :now")
|
.setParameter("codeParticipant", codeParticipant)
|
.setParameter("codeTypeFichier", codeTypeFichier)
|
.setParameter("statut", StatutTmp.EN_COURS)
|
.setParameter("now", LocalDateTime.now())
|
.getResultList().stream().findFirst();
|
|
return optTokenTmp.isPresent() ? optTokenTmp.get() : null;
|
}
|
}
|