From 181ea2d35e592ac1000e39e0c93c030ce5d4f6c7 Mon Sep 17 00:00:00 2001 From: Charlie Darques <charlie.darques.etu@univ-lille.fr> Date: Thu, 6 Mar 2025 16:18:52 +0100 Subject: [PATCH] =?UTF-8?q?d=C3=A9but=20d'impl=C3=A9mentation=20de=20page?= =?UTF-8?q?=20d'accueil=20avec=20ajouts=20de=20m=C3=A9thodes=20pour=20r?= =?UTF-8?q?=C3=A9cup=C3=A9rer=20les=20threads=20suivis=20d'un=20user=20et?= =?UTF-8?q?=20un=20thread=20par=20son=20id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WEB-INF/src/controleurs/Feed.java | 56 +++++++++++++++++++++++++++++ WEB-INF/src/controleurs/LogIn.java | 2 ++ WEB-INF/src/controleurs/SignUp.java | 21 +++++++---- WEB-INF/src/dao/BDConnection.java | 2 +- WEB-INF/src/dao/ThreadDAO.java | 17 +++++++++ WEB-INF/src/dao/UserDAO.java | 13 +++++++ create.html | 2 +- index.html | 2 +- 8 files changed, 105 insertions(+), 10 deletions(-) create mode 100644 WEB-INF/src/controleurs/Feed.java diff --git a/WEB-INF/src/controleurs/Feed.java b/WEB-INF/src/controleurs/Feed.java new file mode 100644 index 0000000..185c66c --- /dev/null +++ b/WEB-INF/src/controleurs/Feed.java @@ -0,0 +1,56 @@ +package controleurs; + +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; + +import java.io.PrintWriter; +import java.io.IOException; +import java.sql.SQLException; +import java.util.List; + +@WebServlet("/Welcome") +public class Feed extends HttpServlet { + public void service(HttpServletRequest req, HttpServletResponse res) + throws IOException { + if (req.getSession().getAttribute("user") != null) { + UserDAO userDao = new UserDAO(); + ThreadDAO threadDao = new ThreadDAO(); + PrintWriter out = res.getWriter(); + String login = req.getParameter("login"); + + User user = userDao.getUserByLogs(login, req.getParameter("password")); + if (user != null) { + List<Thread> threadsFollowed = null; + try { + threadsFollowed = userDao.getThreadsByUser(user); + } catch (SQLException e) { + throw new RuntimeException(e); + } + + out.println("<html><body><meta charset=\"utf-8\">"); + out.println("<title>Welcome</title>"); + out.println("<h1>Welcome " + login + "</h1>"); + out.println(""); + + + out.println("</body>"); + out.println("<footer>"); + out.println("Connecté en tant que " + login); + out.println("</footer>"); + out.println("</html>"); + + } + + + } else { + res.sendRedirect("http://localhost:8080/s4a021-web-backend/index.html"); + } + + } + +} diff --git a/WEB-INF/src/controleurs/LogIn.java b/WEB-INF/src/controleurs/LogIn.java index 852e2dc..f54b9e3 100644 --- a/WEB-INF/src/controleurs/LogIn.java +++ b/WEB-INF/src/controleurs/LogIn.java @@ -21,6 +21,8 @@ public class LogIn extends HttpServlet { if (userdao.isDatabased(user)){ out.println("<h1>Bienvenue " + user.getUserName() + " !</h1>"); + req.getSession().setAttribute("user", user); + res.sendRedirect("http://localhost:8080/s4a021-web-backend/Welcome"); }else{ out.println("<h1>Partez de chez moi ?!</h1>"); } diff --git a/WEB-INF/src/controleurs/SignUp.java b/WEB-INF/src/controleurs/SignUp.java index 1d73ac1..45c3c05 100644 --- a/WEB-INF/src/controleurs/SignUp.java +++ b/WEB-INF/src/controleurs/SignUp.java @@ -19,15 +19,22 @@ public class SignUp extends HttpServlet { String login = req.getParameter("login"); String pwd = req.getParameter("pwd"); - userdao.createUser(login, pwd); - User user = userdao.getUserByLogs(login, pwd); + if (login == null || pwd == null) { + out.println("<h1>Erreur</h1>"); + } + else { + userdao.createUser(login, pwd); + User user = userdao.getUserByLogs(login, pwd); - if (user != null && userdao.isDatabased(user)){ - out.println("<h1>Bienvenue " + user.getUserName() + " !</h1>"); - }else{ - out.println("<h1>Partez de chez moi ?!</h1>"); - userdao.removeUser(user); + if (user != null && userdao.isDatabased(user)){ + out.println("<h1>Bienvenue " + user.getUserName() + " !</h1>"); + req.getSession().setAttribute("user", user); + res.sendRedirect("http://localhost:8080/s4a021-web-backend/Welcome"); + }else{ + out.println("<h1>Partez de chez moi ?!</h1>"); + userdao.removeUser(user); + } } } } diff --git a/WEB-INF/src/dao/BDConnection.java b/WEB-INF/src/dao/BDConnection.java index 3a191cd..0bcea7a 100644 --- a/WEB-INF/src/dao/BDConnection.java +++ b/WEB-INF/src/dao/BDConnection.java @@ -9,7 +9,7 @@ public class BDConnection { public BDConnection(){ try{ Class.forName("org.postgresql.Driver"); - this.connection = DriverManager.getConnection("jdbc:postgresql://psqlserv/but2", "yannisdevosetu", "moi"); + this.connection = DriverManager.getConnection("jdbc:postgresql://psqlserv/but2", "yannis.devos.etu", "moi"); } catch (Exception e) { e.getStackTrace(); } diff --git a/WEB-INF/src/dao/ThreadDAO.java b/WEB-INF/src/dao/ThreadDAO.java index eed9043..8ff8ab9 100644 --- a/WEB-INF/src/dao/ThreadDAO.java +++ b/WEB-INF/src/dao/ThreadDAO.java @@ -35,6 +35,23 @@ public class ThreadDAO { return messages; } + public Thread getThreadById(int threadID) throws SQLException { + Thread thread = new Thread(); + PreparedStatement ps = this.con.prepareStatement("SELECT threadID, threadName FROM thread WHERE threadID = ?"); + try { + ps.setInt(1, threadID); + ResultSet rs = ps.executeQuery(); + if(rs.next()){ + thread.setThreadID(rs.getInt(1)); + thread.setName(rs.getString(2)); + } + } + catch (SQLException sqle) { + sqle.getStackTrace(); + } + return thread; + } + public List<Message> getAllMessagesFromThread(int threadId){ ArrayList<Message> messages = new ArrayList<>(); try{ diff --git a/WEB-INF/src/dao/UserDAO.java b/WEB-INF/src/dao/UserDAO.java index b03177e..31683b7 100644 --- a/WEB-INF/src/dao/UserDAO.java +++ b/WEB-INF/src/dao/UserDAO.java @@ -180,4 +180,17 @@ public class UserDAO extends HttpServlet{ sqle.getStackTrace(); } } + + // Récupérer les thread auxquels un utilisateur est abonné + public List<Thread> getThreadsByUser(User user) throws SQLException { + List<Thread> threads = new ArrayList<>(); + PreparedStatement ps = this.con.prepareStatement("SELECT threadID_follow FROM follow WHERE userID_follow = ?"); + try { + ps.setInt(1, user.getId()); + ResultSet rs = ps.executeQuery(); + while(rs.next()){ + + } + } + } } \ No newline at end of file diff --git a/create.html b/create.html index 10b5cb6..ca54611 100644 --- a/create.html +++ b/create.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head> <meta charset="UTF-8"> <title>Create Account</title> diff --git a/index.html b/index.html index 113a345..2ca066a 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ <!doctype html> -<html lang="fr"> +<html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" -- GitLab