From 0141804a25359d47ffad210e7f33c4ec34cc23ba Mon Sep 17 00:00:00 2001 From: Charlie Darques <charlie.darques.etu@univ-lille.fr> Date: Fri, 14 Mar 2025 13:25:58 +0100 Subject: [PATCH] =?UTF-8?q?d=C3=A9but=20impl=C3=A9mentation=20de=20r=C3=A9?= =?UTF-8?q?action=20=C3=A0=20un=20message?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + WEB-INF/src/controleurs/Feed.java | 2 + WEB-INF/src/controleurs/LikeMessage.java | 50 +++++++++++++++++++++++- WEB-INF/src/dao/UserDAO.java | 5 +++ css/messages.css | 7 ++++ 5 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 css/messages.css diff --git a/README.md b/README.md index b10209a..25a5772 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,7 @@ - structure html page d'accueil **CHARLIE** - corriger bug followThread (la requête n'est pas effectuée lors de l'appel de la méthode) OK - corriger bug unfollow +- rajouter message dao - gestion des réactions (like/unlike) **CHARLIE** - fonctionnalité poster un message texte **CHARLIE** OK - gestion du compte **YANNIS** diff --git a/WEB-INF/src/controleurs/Feed.java b/WEB-INF/src/controleurs/Feed.java index 922cd3b..82c24f8 100644 --- a/WEB-INF/src/controleurs/Feed.java +++ b/WEB-INF/src/controleurs/Feed.java @@ -41,6 +41,7 @@ public class Feed extends HttpServlet { out.println("<html><body><meta charset=\"utf-8\">"); out.println("<link rel=\"stylesheet\" href=\"css/feed.css\">"); + out.println("<link rel=\"stylesheet\" href=\"css/messages.css\">"); out.println("<title>Welcome</title>"); out.println("<h1>Welcome to CampusTalk, " + login + " !</h1>"); @@ -67,6 +68,7 @@ public class Feed extends HttpServlet { out.println("<form action=\"http://localhost:8080/s4a021-web-backend/LikeMessage\" method=\"post\">"); + out.println("<input name=\"messageid\" type=\"hidden\" value=\"" + message.getMsgId() +"\">"); if (liked_messages.contains(message.getMsgId())) { out.println("<button class=\"liked\" type=\"submit\" value=\"Liked\">Liked</button></form>"); diff --git a/WEB-INF/src/controleurs/LikeMessage.java b/WEB-INF/src/controleurs/LikeMessage.java index 39f2c1e..31fc921 100644 --- a/WEB-INF/src/controleurs/LikeMessage.java +++ b/WEB-INF/src/controleurs/LikeMessage.java @@ -1,5 +1,51 @@ package controleurs; -public class LikeMessage { - // à remplir +import java.io.IOException; +import java.sql.SQLException; + +import dao.ThreadDAO; +import dao.UserDAO; +import dto.Message; +import dto.User; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + +@WebServlet("/LikeMessage") +public class LikeMessage extends HttpServlet { + 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(); + + Message msg = req.getParameter("messageid"); + + // à modifier + boolean messageLiked = false; + + if (!messageLiked) { + try { + userDao.reactToMsg(user, msg); + } + catch (SQLException sqle) { + sqle.getStackTrace(); + } + } + else { + try { + userDao.unreactToMsg(user, msg); // méthode à créer + } + catch (SQLException sqle) { + sqle.getStackTrace(); + } + } + res.sendRedirect("http://localhost:8080/s4a021-web-backend/Welcome"); + } + else { + res.sendRedirect("http://localhost:8080/s4a021-web-backend/index.html"); + } + } } diff --git a/WEB-INF/src/dao/UserDAO.java b/WEB-INF/src/dao/UserDAO.java index c59f0a9..9b098e9 100644 --- a/WEB-INF/src/dao/UserDAO.java +++ b/WEB-INF/src/dao/UserDAO.java @@ -325,4 +325,9 @@ public class UserDAO { } return messages; } + + public void unreactToMsg(User user, Message msg) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'unreactToMsg'"); + } } \ No newline at end of file diff --git a/css/messages.css b/css/messages.css new file mode 100644 index 0000000..e3e2ad4 --- /dev/null +++ b/css/messages.css @@ -0,0 +1,7 @@ +.unliked { + background-color: rgb(185, 168, 189); +} + +.liked { + background-color: rgb(247, 160, 211); +} \ No newline at end of file -- GitLab