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

---
 fdx-consultation/fdxconsultation-service-impl/src/main/java/com/megatim/fdxconsultation/service/impl/sockets/TableauBordsEndpoint.java |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/fdx-consultation/fdxconsultation-service-impl/src/main/java/com/megatim/fdxconsultation/service/impl/sockets/TableauBordsEndpoint.java b/fdx-consultation/fdxconsultation-service-impl/src/main/java/com/megatim/fdxconsultation/service/impl/sockets/TableauBordsEndpoint.java
new file mode 100644
index 0000000..0b4f46b
--- /dev/null
+++ b/fdx-consultation/fdxconsultation-service-impl/src/main/java/com/megatim/fdxconsultation/service/impl/sockets/TableauBordsEndpoint.java
@@ -0,0 +1,75 @@
+package com.megatim.fdxconsultation.service.impl.sockets;
+
+import com.megatim.fdxconsultation.core.ifaces.stats.TableauBordManager;
+import com.megatim.fdxconsultation.service.impl.sockets.encoders.ParticipantToFichiersDecoder;
+import com.megatim.fdxconsultation.service.impl.sockets.encoders.ParticipantToFichiersEncoder;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.inject.Inject;
+import javax.websocket.EncodeException;
+import javax.websocket.OnClose;
+import javax.websocket.OnError;
+import javax.websocket.OnMessage;
+import javax.websocket.OnOpen;
+import javax.websocket.Session;
+import javax.websocket.server.PathParam;
+import javax.websocket.server.ServerEndpoint;
+
+/**
+ *
+ * @author ASUS
+ */
+@ServerEndpoint(value = "/tableaubord/{username}",
+        encoders = {ParticipantToFichiersEncoder.class},
+        decoders = {ParticipantToFichiersDecoder.class}
+)
+public class TableauBordsEndpoint {
+
+    @Inject
+    private TableauBordManager manager;
+
+    @Inject
+    private UserSessionBean userSessionBean;
+
+    @OnOpen
+    public void onOpen(Session session, @PathParam("username") String username) {
+        try {
+            session.getBasicRemote().sendObject(manager.userTableauBordToTypeFichiers(username));
+            userSessionBean.getSessionMap().put(username, session);
+        } catch (IOException | EncodeException ex) {
+            Logger.getLogger(FichiersEndpoint.class.getName()).log(Level.SEVERE, null, ex);
+        }
+    }
+
+    @OnMessage
+    public void onMessage(Map<String, List<String>> message, Session session) {
+    }
+
+    @OnClose
+    public void onClose(Session session) {
+        removeSession(session);
+    }
+
+    @OnError
+    public void onError(Session session, Throwable throwable) {
+        removeSession(session);
+    }
+
+    private void removeSession(Session session) {
+        String userName = null;
+
+        for (Entry<String, Session> e : userSessionBean.getSessionMap().entrySet()) {
+            if (e.getValue().getId().equals(session.getId())) {
+                userName = e.getKey();
+                break;
+            }
+        }
+        if (userName != null) {
+            userSessionBean.getSessionMap().remove(userName);
+        }
+    }
+}

--
Gitblit v1.10.0