diff --git a/WEB-INF/src/controleurs/Feed.java b/WEB-INF/src/controleurs/Feed.java index a1b4a969d6bae004988fdf32f7b67ff984fbbf61..faafc66c9bbf2f4358cf3579cdf89046c196aaee 100644 --- a/WEB-INF/src/controleurs/Feed.java +++ b/WEB-INF/src/controleurs/Feed.java @@ -58,8 +58,9 @@ public class Feed extends HttpServlet { out.println("<p class=\"msgContent\">" + message.getContent() + "</p>"); // le formulaire appelle une servlet qui poste le message et redirige vers cette page avec les messages updatés - out.println("<form action=\"#\" method=\"post\">"); + out.println("<form action=\"http://localhost:8080/s4a021-web-backend/PostMessage\" method=\"post\">"); out.println("<textarea id=\"message\" name=\"message\" rows=\"3\" cols=\"45\" placeholder=\"Post a message in this thread\"></textarea>"); + out.println("<input name=\"threadid\" type=\"hidden\" value=\"" + msgThread.getId() +"\">"); out.println("<button type=\"submit\">Post</button>"); out.println("</form>"); diff --git a/WEB-INF/src/controleurs/PostMessage.java b/WEB-INF/src/controleurs/PostMessage.java new file mode 100644 index 0000000000000000000000000000000000000000..c1793870162fd9b4ef1a46d41776b8352be9aa66 --- /dev/null +++ b/WEB-INF/src/controleurs/PostMessage.java @@ -0,0 +1,48 @@ +package controleurs; + +import java.io.IOException; +import java.sql.SQLException; + +import dao.ThreadDAO; +import dao.UserDAO; +import dto.User; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; + + +@WebServlet("/PostMessage") +public class PostMessage extends HttpServlet { + public void service(HttpServletRequest req, HttpServletResponse res) throws IOException { + User user = (User) req.getSession().getAttribute("user"); + UserDAO userDAO = new UserDAO(); + ThreadDAO threadDAO = new ThreadDAO(); + + if (user != null) { + String message = null; + int senderID = user.getId(); + int threadID = 0; + + if (req.getParameter("message") != null) { + message = req.getParameter("message"); + } + if (req.getParameter("threadid") != null) { + threadID = Integer.parseInt(req.getParameter("threadid")); + } + + if (!message.isEmpty() && senderID != 0 && threadID != 0) { + System.out.println("dans le if"); + try { + userDAO.postMessage(user, threadDAO.getThreadById(threadID), message); + System.out.println("message posté"); + } + catch (SQLException sqle) { + sqle.getStackTrace(); + } + + res.sendRedirect("http://localhost:8080/s4a021-web-backend/Welcome"); + } + } + } +} diff --git a/WEB-INF/src/dao/UserDAO.java b/WEB-INF/src/dao/UserDAO.java index 54658038e5c7e1c35a15ad51fd7dc1d793b6c163..4ff0869ea2e54d23cc47c48dbed8af925000eba2 100644 --- a/WEB-INF/src/dao/UserDAO.java +++ b/WEB-INF/src/dao/UserDAO.java @@ -148,9 +148,7 @@ public class UserDAO { PreparedStatement ps = this.con.prepareStatement("INSERT INTO follow VALUES(?, ?, ?)"); try { ps.setInt(1, user.getId()); - System.out.println(user.getId()); ps.setInt(2, thread.getId()); - System.out.println(thread.getId()); ps.setString(3, "TO_DATE(" +LocalDate.now().toString() + ", 'YYYY/MM/DD')"); ps.executeUpdate(); } @@ -161,12 +159,16 @@ public class UserDAO { // Poster un message dans un thread public void postMessage(User user, MyThread thread, String message) throws SQLException { - PreparedStatement ps = this.con.prepareStatement("INSERT INTO msg (userID_msg, threadID, msg) VALUES(?, ?, ?)"); + PreparedStatement ps = this.con.prepareStatement("INSERT INTO msg (userID_msg, threadID, msg, posted_at) VALUES(?, ?, ?, ?)"); try { - ps.setInt(1, user.getId()); + System.out.println("dans le try de post message"); + ps.setString(1, ""+user.getId()); // PROBLEME ICI - ps.setInt(2, (int) thread.getId()); + ps.setString(2, ""+thread.getId()); ps.setString(3, message); + ps.setString(4, "TO_DATE(" + LocalDate.now().toString() + ", 'YYYY/MM/DD')"); + System.out.println(ps); + ps.executeUpdate(); } catch (SQLException sqle) { sqle.getStackTrace();