Skip to content
Snippets Groups Projects
Select Git revision
  • 750aee9f1cdfbcbe08e3e52bb03b81e844291149
  • main default protected
  • version_pour_projet_2
  • dev
  • LIVRABLE_3
  • LIVRABLE_2
  • LIVRABLE_1
7 results

MyResource.java

Blame
  • Feed.java 4.55 KiB
    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.ArrayList;
    import java.util.List;
    
    @WebServlet("/Welcome")
    public class Feed extends HttpServlet {
        UserDAO userDao = new UserDAO();
        ThreadDAO threadDao = new ThreadDAO();
        User user;
    
        public void service(HttpServletRequest req, HttpServletResponse res)
                throws IOException {
            if (req.getSession().getAttribute("user") != null) {
                PrintWriter out = res.getWriter();
                String login = (String) req.getSession().getAttribute("login");
    
                user = userDao.getUserByLogs(login, req.getSession().getAttribute("password").toString());
    
                List<Integer> liked_messages = getLikedMessages(req);
    
                List<Message> messages = null;
                try {
                    messages = userDao.getMostRecentMessages(user);
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
    
                out.println("<html><body><meta charset=\"utf-8\">");
                out.println("<link rel=\"stylesheet\" href=\"css/feed.css\">");
                out.println("<title>Welcome</title>");
    
                out.println("<h1>Welcome to CampusTalk, " + login + " !</h1>");
    
                out.println(PageGeneration.generateNavMenu());
    
                if (!messages.isEmpty()) {
                    for (Message message : messages) {
                        MyThread msgThread;
                        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("<form action=\"http://localhost:8080/s4a021-web-backend/PostMessage\" method=\"post\">");
                        out.println("<textarea name=\"message\" rows=\"2\" cols=\"30\" placeholder=\"Post a message in this thread\"></textarea>");
                        out.println("<input name=\"threadid\" type=\"hidden\" value=\"" + msgThread.getId() + "\">");
                        out.println("<button type=\"submit\">Post</button>");
                        out.println("</form>");
    
    
                        out.println("<form action=\"http://localhost:8080/s4a021-web-backend/LikeMessage\" method=\"post\">");
    
                        if (liked_messages.contains(message.getMsgId())) {
                            out.println("<button class=\"liked\" type=\"submit\" value=\"Liked\">Liked</button></form>");
                        } else {
                            out.println("<button class=\"unliked\" type\"submit\" value=\"Unliked\">Unliked</button></form>");
                        }
                        out.println("</div>");
                    }
                }
                else{
                    out.println("<p class=\"information\">You are not following any thread yet.</p>");
                }
    
                out.println("<div class=\"discover\">");
                out.println("<a href=\"\">Discover new threads</a>");
                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");
            }
        }
    
        public List<Integer> getLikedMessages(HttpServletRequest req) {
            List<Integer> liked_messages = new ArrayList<>();
            if (req.getSession().getAttribute("liked_messages") != null) {
                liked_messages = (List<Integer>) req.getSession().getAttribute("liked_messages");
            }
            else {
                try {
                    liked_messages = userDao.getLikedMessagesFromUser(user);
                    req.getSession().setAttribute("liked_messages", liked_messages);
                } catch (SQLException e) {
                    e.getStackTrace();
                }
            }
            return liked_messages;
        }
    
    }