Skip to content
Snippets Groups Projects
Select Git revision
  • 031bd78812871615404f0c7ac7b2c763908d1bb3
  • main default protected
2 results

ThreadController.java

Blame
  • ThreadController.java 1.62 KiB
    package controleur;
    
    import java.io.IOException;
    
    import jakarta.servlet.ServletException;
    import jakarta.servlet.annotation.WebServlet;
    import jakarta.servlet.http.HttpServlet;
    import jakarta.servlet.http.HttpServletRequest;
    import jakarta.servlet.http.HttpServletResponse;
    import modele.dao.DaoFollower;
    import modele.dto.Follower;
    
    @WebServlet("/thread")
    public class ThreadController extends HttpServlet {
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String username;
            // vérification de l'authentification
            if((username = (String) req.getSession().getAttribute("username")) == null){
                resp.sendRedirect("index.html");
                return ;
            }
            String action = (String) req.getParameter("action");
            String vue;
            DaoFollower daoFollower = new DaoFollower();
            int idThread = Integer.parseInt(req.getParameter("id"));
            Follower follow = new Follower(username, idThread);
    
            switch (action){
                case "follow":
                    if(daoFollower.checkFollowerExist(follow)){
                        resp.sendRedirect("index.html");
                        return ;
                    }
                    daoFollower.create(follow);
                    vue = "WEB-INF/vue/filsSuivis.jsp";
                    break;
                case "unfollow":
                    daoFollower.delete(follow);
                    vue = "WEB-INF/vue/filsSuivis.jsp";
                    break;
                default:
                    vue = "WEB-INF/vue/fils.jsp";
            }
            req.getRequestDispatcher(vue).forward(req, resp);
        }
    }