From cd44b1a1e561d871f979821679788a82b8c906d7 Mon Sep 17 00:00:00 2001 From: Charlie Darques <charlie.darques.etu@univ-lille.fr> Date: Sat, 15 Mar 2025 19:01:09 +0100 Subject: [PATCH] =?UTF-8?q?refacto=20et=20corrections=20non=20test=C3=A9es?= =?UTF-8?q?=20pour=20like/unlike=20un=20message?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WEB-INF/src/controleurs/Account.java | 2 +- WEB-INF/src/controleurs/LikeMessage.java | 121 +++++++++++++---------- WEB-INF/src/dao/UserDAO.java | 18 +++- 3 files changed, 84 insertions(+), 57 deletions(-) diff --git a/WEB-INF/src/controleurs/Account.java b/WEB-INF/src/controleurs/Account.java index ddc2dcd..170ad05 100644 --- a/WEB-INF/src/controleurs/Account.java +++ b/WEB-INF/src/controleurs/Account.java @@ -65,7 +65,7 @@ public class Account extends HttpServlet { // out.println("</form>"); out.println("<h2>DELETE YOUR ACCOUNT</h2>"); - out.println("<form class=\"delForm\" action=\"/s4a021-web-backend/deletedAccount\">"); + out.println("<form class=\"delForm\" action=\"/s4a021-web-backend/deletedAccount\" method=\"post\">"); out.println("<button type=\"submit\">Delete Account</button>"); out.println("</form>"); diff --git a/WEB-INF/src/controleurs/LikeMessage.java b/WEB-INF/src/controleurs/LikeMessage.java index 1da61e5..dc46a7d 100644 --- a/WEB-INF/src/controleurs/LikeMessage.java +++ b/WEB-INF/src/controleurs/LikeMessage.java @@ -1,53 +1,68 @@ -//package controleurs; -// -//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"); -// } -// } -//} - -// TODO : à décommenter \ No newline at end of file +package controleurs; + +import java.io.IOException; +import java.sql.SQLException; + +import dao.MessageDAO; +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(); + MessageDAO messageDao = new MessageDAO(); + + Message msg = null; + + try { + messageDao.getMessageByID( + Integer.parseInt(req.getParameter("messageid"))); + } + catch (SQLException sqle) { + sqle.getStackTrace(); + } + + boolean messageLiked = false; + try { + messageLiked = messageDao.isMessageLikedByUser(msg, user); + } + catch (SQLException sqle) { + sqle.getStackTrace(); + } + + 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"); + } + } +} + +TODO : à décommenter \ No newline at end of file diff --git a/WEB-INF/src/dao/UserDAO.java b/WEB-INF/src/dao/UserDAO.java index d6e057e..9372e8a 100644 --- a/WEB-INF/src/dao/UserDAO.java +++ b/WEB-INF/src/dao/UserDAO.java @@ -359,8 +359,20 @@ public class UserDAO { return messages; } - public void unreactToMsg(User user, Message msg) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'unreactToMsg'"); + public void unreactToMsg(User user, Message msg) throws SQLException { + PreparedStatement ps = this.con.prepareStatement(""" + UPDATE reactions + SET reaction = false + WHERE userID_reactions = ? + AND msgID_reactions = ? + """); + try { + ps.setInt(1, user.getId()); + ps.setInt(2, msg.getMsgId()); + ps.executeUpdate(); + } + catch (SQLException sqle) { + sqle.getStackTrace(); + } } } \ No newline at end of file -- GitLab