From 23a46b4be35277e06ec89f48730eeb694e686be8 Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Thu, 18 Jun 2026 15:40:06 +0000
Subject: [PATCH] add fdx-commons and fdx-consultation

---
 apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/administration/TokenGenerationManagerImpl.java |   65 ++++++++++++++++++++++++++++++++
 1 files changed, 65 insertions(+), 0 deletions(-)

diff --git a/apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/administration/TokenGenerationManagerImpl.java b/apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/administration/TokenGenerationManagerImpl.java
new file mode 100644
index 0000000..f392df8
--- /dev/null
+++ b/apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/administration/TokenGenerationManagerImpl.java
@@ -0,0 +1,65 @@
+package com.megatim.apifdxweb.core.impl.administration;
+
+import com.bekosoftware.genericdaolayer.dao.ifaces.GenericDAO;
+import com.bekosoftware.genericmanagerlayer.core.impl.AbstractGenericManager;
+import com.google.common.hash.Hashing;
+import com.megatim.apifdxweb.core.ifaces.administration.TokenGenerationManager;
+import com.megatim.apifdxweb.dao.ifaces.administration.TokenGenerationDAO;
+import com.megatim.apifdxweb.model.administration.TokenGeneration;
+import com.megatim.apifdxweb.model.administration.User;
+import com.megatim.apifdxweb.model.administration.enums.StatutTokenGeneration;
+import java.nio.charset.StandardCharsets;
+import java.time.LocalDateTime;
+import javax.enterprise.context.Dependent;
+import javax.inject.Inject;
+import javax.transaction.Transactional;
+
+@Dependent
+public class TokenGenerationManagerImpl extends AbstractGenericManager<TokenGeneration, Long> implements TokenGenerationManager {
+
+    @Inject
+    protected TokenGenerationDAO dao;
+
+    public TokenGenerationManagerImpl() {
+    }
+
+    @Override
+    public GenericDAO<TokenGeneration, Long> getDao() {
+        return dao;
+    }
+
+    @Override
+    public String getEntityIdName() {
+        return "id";
+    }
+
+    @Override
+    @Transactional
+    public void createTokenGeneration(User user, String token, int validite) {
+        TokenGeneration currentTokenGeneration = dao.getCurrentGeneration(user.getUserName());
+        if (currentTokenGeneration != null) {
+            currentTokenGeneration.setStatutTokenGeneration(StatutTokenGeneration.ARCHIVE);
+            dao.update(currentTokenGeneration.getId(), currentTokenGeneration);
+        }
+
+        TokenGeneration tokenGeneration = new TokenGeneration();
+        tokenGeneration.setDateGeneration(LocalDateTime.now());
+        tokenGeneration.setUser(user);
+        tokenGeneration.setToken(getHash(token));
+        tokenGeneration.setValidite(validite);
+        tokenGeneration.setStatutTokenGeneration(StatutTokenGeneration.EN_COURS);
+
+        dao.save(tokenGeneration);
+    }
+
+    @Override
+    public boolean isTokenCorrect(String codeParticipant, String token) {
+        TokenGeneration currentTokenGeneration = dao.getCurrentGeneration(codeParticipant);
+        return currentTokenGeneration != null && currentTokenGeneration.getToken().equals(getHash(token));
+    }
+
+    private String getHash(String value) {
+        return Hashing.sha256().hashString(value, StandardCharsets.UTF_8).toString();
+    }
+
+}

--
Gitblit v1.10.0