From 4dd153c59e17524b47a7df82e6001c5fc8c7ebbd Mon Sep 17 00:00:00 2001
From: Charlie Darques <charlie.darques.etu@univ-lille.fr>
Date: Fri, 7 Mar 2025 11:31:50 +0100
Subject: [PATCH] correction pour l'affichage des messages suivis

---
 WEB-INF/src/controleurs/Feed.java  |  8 ++++++--
 WEB-INF/src/controleurs/LogIn.java |  1 +
 WEB-INF/src/dao/UserDAO.java       | 19 ++++++++++++++-----
 3 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/WEB-INF/src/controleurs/Feed.java b/WEB-INF/src/controleurs/Feed.java
index 8e99615..f37d61e 100644
--- a/WEB-INF/src/controleurs/Feed.java
+++ b/WEB-INF/src/controleurs/Feed.java
@@ -27,7 +27,8 @@ public class Feed extends HttpServlet {
             String login = (String) req.getSession().getAttribute("login");
             System.out.println(login);
 
-            User user = userDao.getUserByLogs(login, req.getParameter("password"));
+            User user = userDao.getUserByLogs(login, req.getSession().getAttribute("password").toString());
+
             if (user != null) {
                 List<Message> messages = null;
                 try {
@@ -41,14 +42,17 @@ public class Feed extends HttpServlet {
                 out.println("<h1>Welcome " + login + "</h1>");
                 out.println("");
 
+                System.out.println(messages.size());
+
                 for (Message message : messages) {
+                    System.out.println("dans le for");
                     MyThread msgThread = null;
                     try {
                         msgThread = threadDao.getThreadById(message.getThreadId());
                     } catch (SQLException e) {
                         throw new RuntimeException(e);
                     }
-                    out.println("div class=\"message\">");
+                    out.println("<div class=\"message\">");
                     out.println("<h3 class=\"msgThread\">" + msgThread.getThreadName() + "</h3>");
                     out.println("<p class=\"msgContent\">" + message.getContent() + "</p>");
                     out.println("</div>");
diff --git a/WEB-INF/src/controleurs/LogIn.java b/WEB-INF/src/controleurs/LogIn.java
index b8d21be..a8138c1 100644
--- a/WEB-INF/src/controleurs/LogIn.java
+++ b/WEB-INF/src/controleurs/LogIn.java
@@ -27,6 +27,7 @@ public class LogIn extends HttpServlet {
                 req.getSession().setAttribute("user", user);
             }
             else System.out.println("session nulle");
+            req.getSession().setAttribute("password", user.getPwd());
             res.sendRedirect("http://localhost:8080/s4a021-web-backend/Welcome");
         }else{
             out.println("<h1>Partez de chez moi ?!</h1>");
diff --git a/WEB-INF/src/dao/UserDAO.java b/WEB-INF/src/dao/UserDAO.java
index 9251f0c..eaa30ac 100644
--- a/WEB-INF/src/dao/UserDAO.java
+++ b/WEB-INF/src/dao/UserDAO.java
@@ -206,16 +206,23 @@ public class UserDAO {
         List<Message> messages = new ArrayList<>();
         PreparedStatement ps = this.con.prepareStatement("""
         SELECT m.msgID, m.userID_msg, m.threadID, m.msg, m.posted_at FROM msg AS m 
-        INNER JOIN follow AS f 
-        ON m.userID_msg = f.userID_follow
-        WHERE f.threadID_follow = m.threadID 
-        AND m.userID_msg = ?
-        ORDER BY m.posted_at DESC
+        INNER JOIN thread AS t ON m.threadid = t.threadid 
+        WHERE m.threadID IN (
+            SELECT f.threadid_follow FROM follow AS f 
+            INNER JOIN thread AS t 
+            ON t.threadid = f.threadid_follow 
+            INNER JOIN userAccount AS u 
+            ON u.userid = f.userid_follow 
+            WHERE u.userID = ?)
+        ORDER BY m.posted_at DESC;
         """);
         try {
+            System.out.println("user id : " + user.getId());
             ps.setInt(1, user.getId());
+            System.out.println("dans le try");
             ResultSet rs = ps.executeQuery();
             while(rs.next()){
+                System.out.println("dans le while");
                 int msgID = rs.getInt(1);
                 int sender = rs.getInt(2);
                 int threadID = rs.getInt(3);
@@ -225,8 +232,10 @@ public class UserDAO {
             }
         }
         catch (SQLException sqle) {
+            System.out.println("erreur");
             sqle.getStackTrace();
         }
+        System.out.println("test");
         return messages;
     }
 }
\ No newline at end of file
-- 
GitLab