Select Git revision
MessageController.java
-
Maxime Gosselin authoredMaxime Gosselin authored
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);
}
}