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

refacto + ajout page découverte des threads non suivis + option follow un thread

parent 073dd66b
No related branches found
No related tags found
No related merge requests found
package controleurs;
import dao.ThreadDAO;
import dao.UserDAO;
import dto.Message;
import dto.MyThread;
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("/Discover")
public class Discover 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 = (String) req.getSession().getAttribute("login");
User user = (User) req.getSession().getAttribute("user");
if (user != null) {
List<Message> messages = null;
messages = threadDao.getAllMessages();
out.println("<html><body><meta charset=\"utf-8\">");
out.println("<link rel=\"stylesheet\" href=\"css/feed.css\">");
out.println("<title>Discover</title>");
out.println("<h1>Discover the threads you're not following yet</h1>");
out.println(PageGeneration.generateNavMenu());
if (!messages.isEmpty()) {
for (Message message : messages) {
MyThread msgThread = null;
try {
msgThread = threadDao.getThreadById(message.getThreadId());
} catch (SQLException e) {
throw new RuntimeException(e);
}
out.println("<div class=\"message\">");
out.println("<h3 class=\"msgThread\">" + msgThread.getThreadName() + "</h3>");
out.println("<p class=\"msgContent\">" + message.getContent() + "</p>");
out.println("<p class=\"sender\">by " + userDao.getUserById(message.getSenderId()).getUserName() + "</p>");
out.println("<form class=\"followThread\" action=\"http://localhost:8080/s4a021-web-backend/FollowThread\" method=\"post\">");
out.println("<input name=\"threadid\" type=\"hidden\" value=\"" + msgThread.getId() +"\">");
out.println("<button type=\"submit\">Follow</button>");
out.println("</form>");
}
}
else {
out.println("<p class=\"information\">No new thread to discover for now !</p>");
}
out.println("<div class=\"discover\">");
out.println("<a href=\"http://localhost:8080/s4a021-web-backend/NewThread\">Create a new thread</a>");
out.println("</div>");
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");
}
}
}
......@@ -20,7 +20,6 @@ public class Feed extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException {
if (req.getSession().getAttribute("user") != null) {
System.out.println("Utilisateur connecté :" + req.getSession().getAttribute("user"));
UserDAO userDao = new UserDAO();
ThreadDAO threadDao = new ThreadDAO();
PrintWriter out = res.getWriter();
......@@ -41,7 +40,7 @@ public class Feed extends HttpServlet {
out.println("<link rel=\"stylesheet\" href=\"css/feed.css\">");
out.println("<title>Welcome</title>");
out.println("<h1>Welcome " + login + "</h1>");
out.println("<h1>Welcome to CampusTalk, " + login + " !</h1>");
out.println(PageGeneration.generateNavMenu());
......
package controleurs;
import dao.ThreadDAO;
import dao.UserDAO;
import dto.User;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
@WebServlet("/FollowThread")
public class FollowThread {
public void service(HttpServletRequest req, HttpServletResponse res)
throws IOException {
if (req.getSession().getAttribute("user") != null) {
User user = (User) req.getSession().getAttribute("user");
UserDAO userDao = new UserDAO();
ThreadDAO threadDao = new ThreadDAO();
PrintWriter out = res.getWriter();
String login = (String) req.getSession().getAttribute("login");
try {
userDao.followThread(user, threadDao.getThreadById((Integer.parseInt(req.getParameter("threadid")))));
}
catch (SQLException sqle) {
sqle.getStackTrace();
}
}
else {
res.sendRedirect("http://localhost:8080/s4a021-web-backend/Welcome");
}
}
}
......@@ -25,7 +25,7 @@ public class Following extends HttpServlet {
UserDAO userDAO = new UserDAO();
String login = (String) req.getSession().getAttribute("login");
User user = userDAO.getUserByLogs(login, req.getSession().getAttribute("password").toString());
User user = (User) req.getSession().getAttribute("user");
if (!userDAO.isDatabased(user)) res.sendRedirect("http://localhost:8080/s4a021-web-backend/index.html");
List<MyThread> threadsFollowedByUser = null;
......
......@@ -20,7 +20,7 @@ public class ThreadDAO {
ArrayList<Message> messages = new ArrayList<>();
try{
Statement stmt = this.con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM msg;");
ResultSet rs = stmt.executeQuery("SELECT * FROM msg ORDER BY posted_at DESC;");
while(rs.next()){
int msgId = rs.getInt(1);
......
......@@ -169,9 +169,7 @@ public class UserDAO {
public void postMessage(User user, MyThread thread, String message) throws SQLException {
PreparedStatement ps = this.con.prepareStatement("INSERT INTO msg (userID_msg, threadID, msg, posted_at) VALUES(?, ?, ?, ?)");
try {
System.out.println("dans le try de post message");
ps.setInt(1, user.getId());
// PROBLEME ICI
ps.setInt(2, thread.getId());
ps.setString(3, message);
Date date = Date.valueOf(LocalDate.now());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment