Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • charlie.darques.etu/s4a021-web-backend
1 result
Show changes
Commits on Source (2)
......@@ -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>");
......
//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
package dao;
import dto.Message;
import dto.User;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class MessageDAO {
private Connection con;
public MessageDAO(){
this.con = new BDConnection().getConnection();
}
public Message getMessageByID(int id) throws SQLException {
Message message = null;
PreparedStatement stmt = this.con.prepareStatement("SELECT * FROM msg WHERE msgID = ?;");
try{
stmt.setInt(1, id);
ResultSet rs = stmt.executeQuery();
while(rs.next()){
int msgId = rs.getInt(1);
int userIdMsg = rs.getInt(2);
int threadId = rs.getInt(3);
String msg = rs.getString(4);
message = new Message(msgId,userIdMsg,threadId,msg);
}
} catch (SQLException sqle) {
sqle.getStackTrace();
}
return message;
}
public boolean isMessageLikedByUser(Message message, User user) throws SQLException {
PreparedStatement ps = this.con.prepareStatement("""
SELECT reaction FROM reactions
WHERE userID_reactions = ?
AND msgID_reactions = ?
""");
try {
ps.setInt(1, user.getId());
ps.setInt(2, message.getMsgId());
ResultSet rs = ps.executeQuery();
while(rs.next()) {
if (rs.getBoolean("reaction")) {
return true;
}
else return false;
}
}
catch (SQLException sqle) {
sqle.getStackTrace();
}
return false;
}
}
......@@ -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