/* * 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 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 optionalTokenTmp = query.getResultList().stream().findFirst(); return optionalTokenTmp.isPresent() ? optionalTokenTmp.get() : null; } @Override public List 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 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 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; } }