From 9d9f16558f9872cf65c8f6010bdb096fbef6b904 Mon Sep 17 00:00:00 2001 From: Yannis Devos <yannis.devos.etu@univ-lille.fr> Date: Tue, 18 Mar 2025 11:17:49 +0100 Subject: [PATCH] Correction discover page --- WEB-INF/src/controleurs/Discover.java | 23 ++++++++--------------- WEB-INF/src/controleurs/Feed.java | 2 +- WEB-INF/src/controleurs/Following.java | 2 +- WEB-INF/src/dao/ThreadDAO.java | 19 +++++++++++++++++-- WEB-INF/src/dto/MyThread.java | 11 +++++++++++ 5 files changed, 38 insertions(+), 19 deletions(-) diff --git a/WEB-INF/src/controleurs/Discover.java b/WEB-INF/src/controleurs/Discover.java index 4905460..7a790c3 100644 --- a/WEB-INF/src/controleurs/Discover.java +++ b/WEB-INF/src/controleurs/Discover.java @@ -13,6 +13,7 @@ import jakarta.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.io.IOException; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; @WebServlet("/Discover") @@ -28,8 +29,7 @@ public class Discover extends HttpServlet { User user = (User) req.getSession().getAttribute("user"); if (user != null) { - List<Message> messages = null; - messages = threadDao.getAllMessages(); + List<MyThread> threads = threadDao.getAllThreads(); out.println("<html><body><meta charset=\"utf-8\">"); out.println("<link rel=\"stylesheet\" href=\"css/feed.css\">"); @@ -50,25 +50,18 @@ public class Discover extends HttpServlet { sqle.getStackTrace(); } - if (!messages.isEmpty()) { - for (Message message : messages) { - MyThread msgThread = null; - try { - msgThread = threadDao.getThreadById(message.getThreadId()); - } catch (SQLException e) { - throw new RuntimeException(e); - } - User sender = userDao.getUserById(message.getSenderId()); + if (!threads.isEmpty()) { + for (MyThread th : threads) { + User sender = userDao.getUserById(th.getUserId()); String senderName = sender.getUserName(); - boolean followed = followedThreads.contains(msgThread.getId()); + boolean followed = followedThreads.contains(th.getId()); out.println("<div class=\"message\">"); - out.println("<h3 class=\"msgThread\">" + msgThread.getThreadName() + "</h3>"); - out.println("<p class=\"msgContent\">" + message.getContent() + "</p>"); + out.println("<h3 class=\"msgThread\">" + th.getThreadName() + "</h3>"); out.println("<p class=\"sender\">by " + senderName + "</p>"); out.println("<form class=\"followThread\" action=\"http://localhost:8080/s4a021-web-backend/FollowThread\" method=\"post\">"); - out.println("<input name=\"threadid\" type=\"hidden\" value=\"" + msgThread.getId() +"\">"); + out.println("<input name=\"threadid\" type=\"hidden\" value=\"" + th.getId() +"\">"); if (followed) { out.println("<button class=\"followed\" type=\"submit\">Followed</button>"); diff --git a/WEB-INF/src/controleurs/Feed.java b/WEB-INF/src/controleurs/Feed.java index d4558b9..331e2d8 100644 --- a/WEB-INF/src/controleurs/Feed.java +++ b/WEB-INF/src/controleurs/Feed.java @@ -57,7 +57,7 @@ public class Feed extends HttpServlet { for (Message message : messages) { try { msgThread = threadDao.getThreadById(message.getThreadId()); - } catch (SQLException e) { + } catch (Exception e) { throw new RuntimeException(e); } out.println("<div class=\"message\">"); diff --git a/WEB-INF/src/controleurs/Following.java b/WEB-INF/src/controleurs/Following.java index 518696e..6892137 100644 --- a/WEB-INF/src/controleurs/Following.java +++ b/WEB-INF/src/controleurs/Following.java @@ -55,7 +55,7 @@ public class Following extends HttpServlet { try { thread = threadDao.getThreadById(t); } - catch (SQLException sqle) { + catch (Exception sqle) { sqle.getStackTrace(); } LocalDate followDate = null; diff --git a/WEB-INF/src/dao/ThreadDAO.java b/WEB-INF/src/dao/ThreadDAO.java index 8c3860f..891338f 100644 --- a/WEB-INF/src/dao/ThreadDAO.java +++ b/WEB-INF/src/dao/ThreadDAO.java @@ -37,10 +37,25 @@ public class ThreadDAO { return messages; } - public MyThread getThreadById(int threadID) throws SQLException { + public List<MyThread> getAllThreads(){ + ArrayList<MyThread> threads = new ArrayList<>(); + try { + PreparedStatement ps = this.con.prepareStatement("SELECT * FROM thread;"); + ResultSet rs = ps.executeQuery(); + while(rs.next()){ + threads.add(new MyThread(rs.getInt(1), rs.getInt(2), rs.getString(3))); + } + } + catch (SQLException sqle) { + sqle.getStackTrace(); + } + return threads; + } + + public MyThread getThreadById(int threadID) { MyThread thread = new MyThread(0, null); - PreparedStatement ps = this.con.prepareStatement("SELECT threadID, threadName FROM thread WHERE threadID = ?"); try { + PreparedStatement ps = this.con.prepareStatement("SELECT threadID, threadName FROM thread WHERE threadID = ?"); ps.setInt(1, threadID); ResultSet rs = ps.executeQuery(); if(rs.next()){ diff --git a/WEB-INF/src/dto/MyThread.java b/WEB-INF/src/dto/MyThread.java index 73cab30..f278c4f 100644 --- a/WEB-INF/src/dto/MyThread.java +++ b/WEB-INF/src/dto/MyThread.java @@ -2,6 +2,7 @@ package dto; public class MyThread { private int threadID; + private int userID; private String threadName; @@ -12,6 +13,12 @@ public class MyThread { this.threadName = name; } + public MyThread(int id, int userId, String name){ + this.threadID = id; + this.userID = userId; + this.threadName = name; + } + // Getter // @@ -19,6 +26,10 @@ public class MyThread { return threadID; } + public int getUserId() { + return userID; + } + public String getThreadName() { return threadName; } -- GitLab