diff --git a/WEB-INF/classes/dao/Conversation.class b/WEB-INF/classes/dao/Conversation.class index 757e7cbaec5048fa6767b524a70b4c8881bc17ef..371c092f728d39d0d6c485973e5fd70d04b310f4 100644 Binary files a/WEB-INF/classes/dao/Conversation.class and b/WEB-INF/classes/dao/Conversation.class differ diff --git a/WEB-INF/classes/dao/ConversationDao.class b/WEB-INF/classes/dao/ConversationDao.class new file mode 100644 index 0000000000000000000000000000000000000000..9f49a0f6e0117fa17fa6eab5fa2f8874b9847139 Binary files /dev/null and b/WEB-INF/classes/dao/ConversationDao.class differ diff --git a/WEB-INF/classes/dao/ConversationJdbcDao.class b/WEB-INF/classes/dao/ConversationJdbcDao.class new file mode 100644 index 0000000000000000000000000000000000000000..d12c821c417bc2040428c62041dc7de3593f5a69 Binary files /dev/null and b/WEB-INF/classes/dao/ConversationJdbcDao.class differ diff --git a/WEB-INF/classes/dao/Message.class b/WEB-INF/classes/dao/Message.class index cc820cf022b37167e583f73e521086adb6af220d..7c7ecb66901903a3355227369aec6d02561d6767 100644 Binary files a/WEB-INF/classes/dao/Message.class and b/WEB-INF/classes/dao/Message.class differ diff --git a/WEB-INF/classes/dao/MessageDao.class b/WEB-INF/classes/dao/MessageDao.class index 26af40efa79f0a130f244ec0ba6c1271a574d943..b83f04c8d5bdc967f92a1fabc0b6a3e163658755 100644 Binary files a/WEB-INF/classes/dao/MessageDao.class and b/WEB-INF/classes/dao/MessageDao.class differ diff --git a/WEB-INF/classes/dao/MessageJdbcDao.class b/WEB-INF/classes/dao/MessageJdbcDao.class index 1d1161b7f802a66ba7e552fe6e2037f69d8328ec..351df4f3a66ea2b41e6fc91905ccf6d72d6fe751 100644 Binary files a/WEB-INF/classes/dao/MessageJdbcDao.class and b/WEB-INF/classes/dao/MessageJdbcDao.class differ diff --git a/WEB-INF/classes/dao/UtilisateurJdbcDao.class b/WEB-INF/classes/dao/UtilisateurJdbcDao.class index 3a51462580193c7d95a6c3e3e70225608c29039e..a69ee09e83de279fe6e721d0b88ca1376ea9e25d 100644 Binary files a/WEB-INF/classes/dao/UtilisateurJdbcDao.class and b/WEB-INF/classes/dao/UtilisateurJdbcDao.class differ diff --git a/WEB-INF/src/dao/ConversationDao.java b/WEB-INF/src/dao/ConversationDao.java index a2825b1bcec96f0f890e3e1c825c53e04d8c082f..d62cbeeebcffe77a77128bbd645b3ca78ce5d89f 100644 --- a/WEB-INF/src/dao/ConversationDao.java +++ b/WEB-INF/src/dao/ConversationDao.java @@ -6,6 +6,7 @@ public interface ConversationDao { Conversation findById(int idConv); List<Message> findAllMessages(int idConv); List<Utilisateur> findAllUtilisateurs(int idConv); + List<Conversation> findByUser(String email); boolean createConversation(String nomConv, Utilisateur createur); boolean deleteConversation(int idConv); } diff --git a/WEB-INF/src/dao/ConversationJdbcDao.java b/WEB-INF/src/dao/ConversationJdbcDao.java index bf12409c378f85cc9c751d72687fb9742802669d..2e96f1a5491bfd0b95acd889e609012146078b3b 100644 --- a/WEB-INF/src/dao/ConversationJdbcDao.java +++ b/WEB-INF/src/dao/ConversationJdbcDao.java @@ -6,7 +6,6 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.time.LocalDate; -import java.time.LocalTime; import java.util.ArrayList; import java.util.List; @@ -16,7 +15,7 @@ public class ConversationJdbcDao implements ConversationDao{ @Override public Conversation findById(int idConv) { try (Connection con = getCon(); Statement stmt = con.createStatement()) { - String sql = "SELECT * FROM Conversation WHERE idConv = "+ idConv +";"; + String sql = "SELECT * FROM Conversations WHERE idConv = "+ idConv +";"; System.err.println(sql); ResultSet rs = stmt.executeQuery(sql); rs.next(); @@ -31,15 +30,35 @@ public class ConversationJdbcDao implements ConversationDao{ return new Conversation(0, "err", new Utilisateur("err","err" , "err"),LocalDate.now()); } + @Override + public List<Conversation> findByUser(String email) { + try (Connection con = getCon(); Statement stmt = con.createStatement()) { + String sql = "SELECT DISTINCT idConv FROM Messages WHERE utilisateur = '"+ email +"';"; + System.err.println(sql); + ResultSet rs = stmt.executeQuery(sql); + List<Conversation> list = new ArrayList<Conversation>(); + while(rs.next()){ + list.add(findById(rs.getInt(1))); + } + rs.close(); + con.close(); + return list; + }catch (SQLException e) { + System.out.println("Erreur lors de l'accès à la base de données : " + e.getMessage()); + e.printStackTrace(); + } + return new ArrayList<Conversation>(); + } + @Override public List<Message> findAllMessages(int idConv) { try (Connection con = getCon(); Statement stmt = con.createStatement()) { - String sql = "SELECT * FROM Message WHERE idConv = "+idConv+";"; + String sql = "SELECT * FROM Messages WHERE idConv = "+idConv+";"; System.err.println(sql); ResultSet rs = stmt.executeQuery(sql); List<Message> list = new ArrayList<Message>(); while(rs.next()){ - list.add(new Message(rs.getInt(1), rs.getInt(2), jdbcUser.findByEmail(rs.getString(3)), rs.getDate(4).toLocalDate() , rs.getTime(5).toLocalTime(), rs.getString(6))); + list.add(new Message(rs.getInt(1), rs.getInt(2), rs.getDate(3).toLocalDate(), rs.getTime(4).toLocalTime(), rs.getString(5), jdbcUser.findByEmail(rs.getString(6)))); } rs.close(); con.close(); diff --git a/WEB-INF/src/dao/Message.java b/WEB-INF/src/dao/Message.java index 2d048c0061ff8e9ddc8d202d6c8454ddd52c9011..d3f2676aacb38a59b665ea788698653185a51b4d 100644 --- a/WEB-INF/src/dao/Message.java +++ b/WEB-INF/src/dao/Message.java @@ -10,7 +10,7 @@ public class Message { LocalDate jour; LocalTime heure; String message; - public Message(int idMessage, int idConv, Utilisateur utilisateur, LocalDate jour, LocalTime heure, String message) { + public Message(int idMessage, int idConv, LocalDate jour, LocalTime heure, String message, Utilisateur utilisateur) { this.idMessage = idMessage; this.idConv = idConv; this.utilisateur = utilisateur; diff --git a/WEB-INF/src/dao/MessageJdbcDao.java b/WEB-INF/src/dao/MessageJdbcDao.java index b74e732d41bb215e37843b44e9dba146ca25f3c9..561b27f947b6a97451c822aadc075e16eb33c206 100644 --- a/WEB-INF/src/dao/MessageJdbcDao.java +++ b/WEB-INF/src/dao/MessageJdbcDao.java @@ -13,6 +13,7 @@ import java.util.List; public class MessageJdbcDao implements MessageDao{ UtilisateurJdbcDao jdbcUser = new UtilisateurJdbcDao(); + //find a message by its id @Override public Message findById(int idMessage) { try (Connection con = getCon(); Statement stmt = con.createStatement()) { @@ -20,7 +21,7 @@ public class MessageJdbcDao implements MessageDao{ System.err.println(sql); ResultSet rs = stmt.executeQuery(sql); rs.next(); - Message message = new Message(rs.getInt(1), rs.getInt(2), jdbcUser.findByEmail(rs.getString(3)), rs.getDate(4).toLocalDate() , rs.getTime(5).toLocalTime(), rs.getString(6)); + Message message = new Message(rs.getInt(1), rs.getInt(2), rs.getDate(3).toLocalDate(), rs.getTime(4).toLocalTime(), rs.getString(5), jdbcUser.findByEmail(rs.getString(6))); rs.close(); con.close(); return message; @@ -28,9 +29,10 @@ public class MessageJdbcDao implements MessageDao{ System.out.println("Erreur lors de l'accès à la base de données : " + e.getMessage()); e.printStackTrace(); } - return new Message(0, 0, new Utilisateur("err","err" , "err"),LocalDate.now(), LocalTime.now(), "err"); + return new Message(0, 0, Date.getDate(3).toLocalDate(), rs.getTime(4).toLocalTime(), rs.getString(5), jdbcUser.findByEmail(rs.getString(6))); // requette d'erreur de message } + //find all message from one user @Override public List<Message> findAll(Utilisateur utilisateur) { try (Connection con = getCon(); Statement stmt = con.createStatement()) { @@ -39,7 +41,7 @@ public class MessageJdbcDao implements MessageDao{ ResultSet rs = stmt.executeQuery(sql); List<Message> list = new ArrayList<Message>(); while(rs.next()){ - list.add(new Message(rs.getInt(1), rs.getInt(2), jdbcUser.findByEmail(rs.getString(3)), rs.getDate(4).toLocalDate() , rs.getTime(5).toLocalTime(), rs.getString(6))); + list.add(new Message(rs.getInt(1), rs.getInt(2), rs.getDate(3).toLocalDate(), rs.getTime(4).toLocalTime(), rs.getString(5), jdbcUser.findByEmail(rs.getString(6)))); } rs.close(); con.close(); @@ -51,6 +53,7 @@ public class MessageJdbcDao implements MessageDao{ return new ArrayList<Message>(); } + //find all the messages from a cnversation @Override public List<Message> findAll(Conversation conversation) { try (Connection con = getCon(); Statement stmt = con.createStatement()) { @@ -71,6 +74,7 @@ public class MessageJdbcDao implements MessageDao{ return new ArrayList<Message>(); } + //create a new message in a conv @Override public boolean createMessage(Utilisateur utilisateur, String message, int idConv) { try (Connection con = getCon(); Statement stmt = con.createStatement()) { @@ -88,6 +92,7 @@ public class MessageJdbcDao implements MessageDao{ return false; } + //update a message @Override public boolean updateMessage(int idMessage, String message) { // TODO Auto-generated method stub diff --git a/accueil.jsp b/accueil.jsp new file mode 100644 index 0000000000000000000000000000000000000000..dd9cdb35b4a64860ee12e6cd1a4f90acd03cba5f --- /dev/null +++ b/accueil.jsp @@ -0,0 +1,66 @@ +<%@ page pageEncoding="UTF-8" %> +<%@ page import="dao.*" %> +<%@ page import="java.util.List" %> +<%@ page import="jakarta.servlet.*" %> +<!DOCTYPE html> +<html> + +<head> + <title> Accueil </title> + <%-- <% response.setIntHeader("Refresh", 5); %> --%> +</head> + +<body> + <% + UtilisateurJdbcDao jdbcUser = new UtilisateurJdbcDao(); + Utilisateur utilisateur= jdbcUser.findByEmail("alexandre.dehaine.etu@univ-lille.fr"); + out.println(utilisateur); + + ConversationJdbcDao jdbcConv = new ConversationJdbcDao(); + List<Conversation> conv = jdbcConv.findByUser(utilisateur.getEmail()); + + %> + <br> + <style> + table, th, td { + border: 1px solid black; + } + </style> + <table> + <tr> + <th>idConv</th> + <th>nomConv</th> + <th>createur</th> + <th>dateCrea</th> + </tr> + <% for (int i = 0; i < conv.size(); i++){ + out.println("<tr>"); + out.println("<td>" + conv.get(i).getIdConv() + "</td>"); + out.println("<td>" + conv.get(i).getNomConv() + "</td>"); + out.println("<td>" + conv.get(i).getCreateur() + "</td>"); + out.println("<td>" + conv.get(i).getDateCrea() + "</td>"); + out.println("</tr>"); + } + + String stringConv = request.getParameter("idConv"); + int selectedConvId; + try{ + selectedConvId = Integer.parseInt(stringConv); + } catch (NumberFormatException e){ + selectedConvId = 0; + } + out.println(selectedConvId); + + List<Message> selectedConv = jdbcConv.findAllMessages(selectedConvId); + for(int i =0; i < selectedConv.size();i++){ + out.println(selectedConv.get(i) + "<br>"); + } + + + %> + </table> + + +</body> + +</html> diff --git a/monobjet.jsp b/monobjet.jsp deleted file mode 100644 index 28f5a314c755a42e57782d7d9a5468ff7ab10fee..0000000000000000000000000000000000000000 --- a/monobjet.jsp +++ /dev/null @@ -1,20 +0,0 @@ -<%@ page pageEncoding="UTF-8" %> -<%@ page import="dao.*" %> -<!DOCTYPE html> -<html> - -<head> - <title> MaPage </title> -</head> - -<body> - <% - UtilisateurJdbcDao jdbcUser = new UtilisateurJdbcDao(); - Utilisateur utilisateur= jdbcUser.findByEmail("alexandre.dehaine.etu@univ-lille.fr"); - out.println(utilisateur); - %> - <br> - -</body> - -</html>