diff --git a/WEB-INF/src/controleurs/Discover.java b/WEB-INF/src/controleurs/Discover.java new file mode 100644 index 0000000000000000000000000000000000000000..31645e0ee2641c9c65e0ddeaa9a0bbdcd919a993 --- /dev/null +++ b/WEB-INF/src/controleurs/Discover.java @@ -0,0 +1,84 @@ +package controleurs; + +import dao.ThreadDAO; +import dao.UserDAO; +import dto.Message; +import dto.MyThread; +import dto.User; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.PrintWriter; +import java.io.IOException; +import java.sql.SQLException; +import java.util.List; + +@WebServlet("/Discover") +public class Discover extends HttpServlet { + public void service(HttpServletRequest req, HttpServletResponse res) + throws IOException { + if (req.getSession().getAttribute("user") != null) { + UserDAO userDao = new UserDAO(); + ThreadDAO threadDao = new ThreadDAO(); + PrintWriter out = res.getWriter(); + String login = (String) req.getSession().getAttribute("login"); + + User user = (User) req.getSession().getAttribute("user"); + + if (user != null) { + List<Message> messages = null; + messages = threadDao.getAllMessages(); + + out.println("<html><body><meta charset=\"utf-8\">"); + out.println("<link rel=\"stylesheet\" href=\"css/feed.css\">"); + out.println("<title>Discover</title>"); + + out.println("<h1>Discover the threads you're not following yet</h1>"); + + out.println(PageGeneration.generateNavMenu()); + + if (!messages.isEmpty()) { + for (Message message : messages) { + MyThread msgThread = null; + try { + msgThread = threadDao.getThreadById(message.getThreadId()); + } catch (SQLException e) { + throw new RuntimeException(e); + } + out.println("<div class=\"message\">"); + out.println("<h3 class=\"msgThread\">" + msgThread.getThreadName() + "</h3>"); + out.println("<p class=\"msgContent\">" + message.getContent() + "</p>"); + out.println("<p class=\"sender\">by " + userDao.getUserById(message.getSenderId()).getUserName() + "</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("<button type=\"submit\">Follow</button>"); + out.println("</form>"); + } + } + else { + out.println("<p class=\"information\">No new thread to discover for now !</p>"); + } + + out.println("<div class=\"discover\">"); + out.println("<a href=\"http://localhost:8080/s4a021-web-backend/NewThread\">Create a new thread</a>"); + out.println("</div>"); + + out.println("</body>"); + out.println("<footer>"); + out.println("Connected as " + login); + out.println("</footer>"); + out.println("</html>"); + + } + + + } else { + res.sendRedirect("http://localhost:8080/s4a021-web-backend/index.html"); + } + + } + +} diff --git a/WEB-INF/src/controleurs/Feed.java b/WEB-INF/src/controleurs/Feed.java index a31cea7043a98b6f13f100d2958eabfc3b45d6d9..cbc8c1119af13c70e00dc2c2311e55e6d0649fc5 100644 --- a/WEB-INF/src/controleurs/Feed.java +++ b/WEB-INF/src/controleurs/Feed.java @@ -20,7 +20,6 @@ public class Feed extends HttpServlet { public void service(HttpServletRequest req, HttpServletResponse res) throws IOException { if (req.getSession().getAttribute("user") != null) { - System.out.println("Utilisateur connecté :" + req.getSession().getAttribute("user")); UserDAO userDao = new UserDAO(); ThreadDAO threadDao = new ThreadDAO(); PrintWriter out = res.getWriter(); @@ -41,7 +40,7 @@ public class Feed extends HttpServlet { out.println("<link rel=\"stylesheet\" href=\"css/feed.css\">"); out.println("<title>Welcome</title>"); - out.println("<h1>Welcome " + login + "</h1>"); + out.println("<h1>Welcome to CampusTalk, " + login + " !</h1>"); out.println(PageGeneration.generateNavMenu()); diff --git a/WEB-INF/src/controleurs/FollowThread.java b/WEB-INF/src/controleurs/FollowThread.java new file mode 100644 index 0000000000000000000000000000000000000000..4d69a3afe78565cf8aa5fc4410e3338edce29d46 --- /dev/null +++ b/WEB-INF/src/controleurs/FollowThread.java @@ -0,0 +1,37 @@ +package controleurs; + +import dao.ThreadDAO; +import dao.UserDAO; +import dto.User; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +import java.io.IOException; +import java.io.PrintWriter; +import java.sql.SQLException; + +@WebServlet("/FollowThread") +public class FollowThread { + public void service(HttpServletRequest req, HttpServletResponse res) + throws IOException { + if (req.getSession().getAttribute("user") != null) { + User user = (User) req.getSession().getAttribute("user"); + + UserDAO userDao = new UserDAO(); + ThreadDAO threadDao = new ThreadDAO(); + PrintWriter out = res.getWriter(); + String login = (String) req.getSession().getAttribute("login"); + + try { + userDao.followThread(user, threadDao.getThreadById((Integer.parseInt(req.getParameter("threadid"))))); + } + catch (SQLException sqle) { + sqle.getStackTrace(); + } + } + else { + res.sendRedirect("http://localhost:8080/s4a021-web-backend/Welcome"); + } + } +} diff --git a/WEB-INF/src/controleurs/Following.java b/WEB-INF/src/controleurs/Following.java index 07cc323cdea3a7da039db2b37c01ccc7c99062a1..d98f435d92f44d3d2b96e95095137649f9174d28 100644 --- a/WEB-INF/src/controleurs/Following.java +++ b/WEB-INF/src/controleurs/Following.java @@ -25,7 +25,7 @@ public class Following extends HttpServlet { UserDAO userDAO = new UserDAO(); String login = (String) req.getSession().getAttribute("login"); - User user = userDAO.getUserByLogs(login, req.getSession().getAttribute("password").toString()); + User user = (User) req.getSession().getAttribute("user"); if (!userDAO.isDatabased(user)) res.sendRedirect("http://localhost:8080/s4a021-web-backend/index.html"); List<MyThread> threadsFollowedByUser = null; diff --git a/WEB-INF/src/dao/ThreadDAO.java b/WEB-INF/src/dao/ThreadDAO.java index 3c5ae83b48744ea65cf9106bc81258a21398a035..8c3860f2f21cfa147c9fa75005c20dad93243b30 100644 --- a/WEB-INF/src/dao/ThreadDAO.java +++ b/WEB-INF/src/dao/ThreadDAO.java @@ -20,7 +20,7 @@ public class ThreadDAO { ArrayList<Message> messages = new ArrayList<>(); try{ Statement stmt = this.con.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM msg;"); + ResultSet rs = stmt.executeQuery("SELECT * FROM msg ORDER BY posted_at DESC;"); while(rs.next()){ int msgId = rs.getInt(1); diff --git a/WEB-INF/src/dao/UserDAO.java b/WEB-INF/src/dao/UserDAO.java index c2c3eb05f34dd5a648197b3a80c736899b68caf7..0e8ec682c0e13a348c9ec60809eb18d90efd7ac6 100644 --- a/WEB-INF/src/dao/UserDAO.java +++ b/WEB-INF/src/dao/UserDAO.java @@ -169,9 +169,7 @@ public class UserDAO { public void postMessage(User user, MyThread thread, String message) throws SQLException { PreparedStatement ps = this.con.prepareStatement("INSERT INTO msg (userID_msg, threadID, msg, posted_at) VALUES(?, ?, ?, ?)"); try { - System.out.println("dans le try de post message"); ps.setInt(1, user.getId()); - // PROBLEME ICI ps.setInt(2, thread.getId()); ps.setString(3, message); Date date = Date.valueOf(LocalDate.now());