diff --git a/WEB-INF/src/dao/MessageDAO.java b/WEB-INF/src/dao/MessageDAO.java new file mode 100644 index 0000000000000000000000000000000000000000..39c7601611c8d5d94c9624ba752c730c2686f6d6 --- /dev/null +++ b/WEB-INF/src/dao/MessageDAO.java @@ -0,0 +1,60 @@ +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; + } +}