diff --git a/WEB-INF/src/controleurs/Account.java b/WEB-INF/src/controleurs/Account.java index ddc2dcd5e7c807455da369d55d9a73b7ab6c11bb..170ad05a71ad75f3262f59fc847e50a29eb6fea5 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 1da61e5558c3950a00a24e7e17213dbe7e071b00..dc46a7d00c09cfc632f687a15d4b3db71bb51147 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 d6e057e007de68d296f2cfb17b68dc0f65edd11a..9372e8a5a5cb46824215cc2a547182ea68e28685 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