Skip to content
Snippets Groups Projects
Commit 25747570 authored by Charlie Darques's avatar Charlie Darques
Browse files

ajout fonctionnalité voir les threads qu'un user suit

parent 91ee08b8
No related branches found
No related tags found
No related merge requests found
...@@ -43,6 +43,8 @@ public class Feed extends HttpServlet { ...@@ -43,6 +43,8 @@ public class Feed extends HttpServlet {
out.println("<h1>Welcome " + login + "</h1>"); out.println("<h1>Welcome " + login + "</h1>");
out.println("<h1>Welcome " + login + "</h1>");
out.println("<nav>"); out.println("<nav>");
out.println("<ul class=\"menu\">"); out.println("<ul class=\"menu\">");
out.println("<li class=\"menu_option\"><a href=\"#\">\uD83C\uDFE0 Home</a></li>"); out.println("<li class=\"menu_option\"><a href=\"#\">\uD83C\uDFE0 Home</a></li>");
...@@ -51,6 +53,8 @@ public class Feed extends HttpServlet { ...@@ -51,6 +53,8 @@ public class Feed extends HttpServlet {
out.println("</ul></nav>"); out.println("</ul></nav>");
if (!messages.isEmpty()) { if (!messages.isEmpty()) {
for (Message message : messages) { for (Message message : messages) {
MyThread msgThread = null; MyThread msgThread = null;
......
package controleurs;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import dao.UserDAO;
import dto.MyThread;
import dto.User;
@WebServlet("/Followed")
public class Following extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException {
if (req.getSession().getAttribute("user") != null) {
PrintWriter out = res.getWriter();
UserDAO userDAO = new UserDAO();
String login = (String) req.getSession().getAttribute("login");
User user = userDAO.getUserByLogs(login, req.getSession().getAttribute("password").toString());
if (!userDAO.isDatabased(user)) res.sendRedirect("http://localhost:8080/s4a021-web-backend/index.html");
List<MyThread> threadsFollowedByUser = null;
try {
System.out.println("dans le try");
threadsFollowedByUser = userDAO.getThreadsFollowedByUser(user);
}
catch (SQLException sqle) {
sqle.getStackTrace();
}
System.out.println(threadsFollowedByUser.size());
out.println("<html><body><meta charset=\"utf-8\">");
out.println("<title>Followed</title>");
out.println("<nav>");
out.println("<ul class=\"menu\">");
out.println("<li class=\"menu_option\"><a href=\"#\">\uD83C\uDFE0 Home</a></li>");
out.println("<li class=\"menu_option\"><a href=\"#\">\uD83E\uDDF5 Followed</a></li>");
out.println("<li class=\"menu_option\"><a href=\"#\">\uD83D\uDC64 Account</a></li>");
out.println("</ul></nav>");
out.println("<h1>Threads followed</h1>");
if (!threadsFollowedByUser.isEmpty()) {
System.out.println("dans les threads suivis");
for (MyThread t : threadsFollowedByUser) {
LocalDate followDate = null;
try {
followDate = userDAO.getFollowDateOfThread(user, t);
}
catch (SQLException sqle) {
sqle.getStackTrace();
}
out.println("<div class=\"thread\">");
out.println("<h3 class=\"threadname\">Thread name: " + t.getThreadName() + "</h3>");
out.println("<h4 class=\"followDate\">Following since: " + followDate + "</h4>");
out.println("</div>");
}
}
else {
out.println("<h3>You are not following any thread yet.</h3>");
out.println("<button><a href=\"\">Discover new threads</a></button>");
}
out.println("</body>");
out.println("<footer>");
out.println("Connected as " + login);
out.println("</footer>");
out.println("</html>");
}
else {
res.sendRedirect("http://localhost:8080/s4a021-web-backend/index.html");
}
}
}
...@@ -5,6 +5,7 @@ import dto.User; ...@@ -5,6 +5,7 @@ import dto.User;
import dto.MyThread; import dto.MyThread;
import java.sql.*; import java.sql.*;
import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
......
...@@ -184,15 +184,21 @@ public class UserDAO { ...@@ -184,15 +184,21 @@ public class UserDAO {
// Récupérer les thread auxquels un utilisateur est abonné // Récupérer les thread auxquels un utilisateur est abonné
public List<MyThread> getThreadsFollowedByUser(User user) throws SQLException { public List<MyThread> getThreadsFollowedByUser(User user) throws SQLException {
List<MyThread> threads = new ArrayList<>(); List<MyThread> threads = new ArrayList<>();
ThreadDAO threadDAO = new ThreadDAO();
PreparedStatement ps = this.con.prepareStatement("SELECT threadID_follow FROM follow WHERE userID_follow = ?"); PreparedStatement ps = this.con.prepareStatement("SELECT threadID_follow FROM follow WHERE userID_follow = ?");
try { try {
ps.setInt(1, user.getId()); ps.setInt(1, user.getId());
ResultSet rs = ps.executeQuery(); ResultSet rs = ps.executeQuery();
while(rs.next()){ while(rs.next()){
System.out.println("dans le while");
int threadId = rs.getInt(1); int threadId = rs.getInt(1);
String threadname = rs.getString(2); System.out.println("id : " + threadId);
String threadname = threadDAO.getThreadById(threadId).getThreadName();
System.out.println("name : " + threadname);
threads.add(new MyThread(threadId, threadname)); threads.add(new MyThread(threadId, threadname));
System.out.println("thread ajouté aux suivis");
} }
System.out.println("après le while");
} }
catch (SQLException sqle) { catch (SQLException sqle) {
sqle.getStackTrace(); sqle.getStackTrace();
...@@ -240,7 +246,6 @@ public class UserDAO { ...@@ -240,7 +246,6 @@ public class UserDAO {
ORDER BY m.posted_at DESC; ORDER BY m.posted_at DESC;
"""); """);
try { try {
System.out.println("user id : " + user.getId());
ps.setInt(1, user.getId()); ps.setInt(1, user.getId());
ResultSet rs = ps.executeQuery(); ResultSet rs = ps.executeQuery();
while(rs.next()){ while(rs.next()){
...@@ -257,4 +262,33 @@ public class UserDAO { ...@@ -257,4 +262,33 @@ public class UserDAO {
} }
return messages; return messages;
} }
public LocalDate getFollowDateOfThread(User user, MyThread thread)
throws SQLException {
LocalDate followDate = null;
PreparedStatement ps = this.con.prepareStatement("""
SELECT followDate FROM follow
WHERE userID_follow = ?
AND threadID_follow = ?
""");
try {
ps.setInt(1, user.getId());
System.out.println(user.getId());
ps.setInt(2, thread.getId());
System.out.println(thread.getId());
System.out.println(ps);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.println("dans le while");
followDate = rs.getDate(1).toLocalDate();
System.out.println(followDate);
}
}
catch (SQLException sqle) {
sqle.getStackTrace();
}
return followDate;
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment