diff --git a/WEB-INF/src/controleur/ThreadController.java b/WEB-INF/src/controleur/ThreadController.java index 3e68542fac22146e662cd840a0f064d67bea62c2..b6e99aa8a66056a00ebbc3603ce6dcb17a406964 100644 --- a/WEB-INF/src/controleur/ThreadController.java +++ b/WEB-INF/src/controleur/ThreadController.java @@ -30,6 +30,10 @@ public class ThreadController extends HttpServlet { switch (action){ case "follow": + if(daoFollower.checkFollowerExist(follow)){ + resp.sendRedirect("index.html"); + return ; + } daoFollower.create(follow); vue = "WEB-INF/vue/filsSuivis.jsp"; break; diff --git a/WEB-INF/src/modele/dao/DaoFollower.java b/WEB-INF/src/modele/dao/DaoFollower.java index 837db24b91fb3e53bfe56c5200d330ddc2c7b2c9..2870eeb0c8841e19347c3b272594e337bd7faef6 100644 --- a/WEB-INF/src/modele/dao/DaoFollower.java +++ b/WEB-INF/src/modele/dao/DaoFollower.java @@ -53,7 +53,7 @@ public class DaoFollower { } } - public List<User> findByThreadID(int idThread){ + public List<User> findUsersByThreadID(int idThread){ DS bdd = DS.getInstance(); List<User> res = new ArrayList<>(); try(Connection con = bdd.getConnection()) { @@ -69,7 +69,7 @@ public class DaoFollower { return res; } - public List<Thread> findByUsername(String username){ + public List<Thread> findThreadsByUsername(String username){ DS bdd = DS.getInstance(); List<Thread> res = new ArrayList<>(); try(Connection con = bdd.getConnection()) { @@ -84,4 +84,19 @@ public class DaoFollower { } return res; } + + public boolean checkFollowerExist(Follower follower){ + DS bdd = DS.getInstance(); + boolean res = false; + try(Connection con = bdd.getConnection()) { + PreparedStatement ps = con.prepareStatement("SELECT * FROM followers WHERE username = ? AND id_thread = ?"); + ps.setString(1, follower.getUsername()); + ps.setInt(2, follower.getId_thread()); + ResultSet rs = ps.executeQuery(); + res = rs.next(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + return res; + } }