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

MessageController.java

Blame
  • MessageController.java 2.77 KiB
    package controleur;
    
    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.DaoLike;
    import modele.dao.DaoMessage;
    import modele.dto.Like;
    import modele.dto.Message;
    
    import java.io.IOException;
    import java.time.LocalDateTime;
    
    @WebServlet("/message")
    public class MessageController 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;
    
            switch (action){
                case "send":
                    String contenue = req.getParameter("message");
                    try {
                        int idThread = Integer.parseInt(req.getParameter("thread"));
    
                        if (contenue != null && !contenue.isEmpty()) {
                            DaoMessage daoMessage = new DaoMessage();
                            Message message = new Message(0, username, idThread, contenue, LocalDateTime.now());
                            daoMessage.create(message);
                        }
                        vue = "thread?action=open&id=" + idThread;
                    } catch (NumberFormatException exception){
                        req.setAttribute("error", "Ne changez pas l'url vous même!");
                        vue = "/WEB-INF/error.jsp";
                    }
                    break;
    
                case "like":
                    try {
                        int idMessage = Integer.parseInt(req.getParameter("message"));
                        int idThread = Integer.parseInt(req.getParameter("thread"));
                        DaoLike daoLike = new DaoLike();
                        Like like = new Like(username, idMessage);
    
                        // Vérifier si l'utilisateur a déjà liké ce message
                        if (daoLike.isAlreadyLike(idMessage, username)) {
                            daoLike.delete(like); // Supprime le like
                        } else {
                            daoLike.create(like); // Ajoute le like
                        }
                        vue = "thread?action=open&id=" + idThread;
                    } catch (NumberFormatException exception) {
                        req.setAttribute("error", "Ne changez pas l'URL vous-même !");
                        vue = "/WEB-INF/error.jsp";
                    }
                    break;
                default:
                    vue = "";
            }
            req.getRequestDispatcher(vue).forward(req, resp);
        }
    }