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