From f3698f5f785c084e269292153e1a0239e7f132c7 Mon Sep 17 00:00:00 2001 From: kmitresse Date: Fri, 29 Mar 2024 09:48:20 +0100 Subject: [PATCH] feat: dev-web - add entityManager.getTransaction functions in Servlets --- .../uppa/project/servlet/ForgottenPasswordServlet.java | 8 ++++++++ .../main/java/uppa/project/servlet/RegisterServlet.java | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/ForgottenPasswordServlet.java b/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/ForgottenPasswordServlet.java index 51a23ba..81bf1c7 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/ForgottenPasswordServlet.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/ForgottenPasswordServlet.java @@ -6,6 +6,7 @@ package uppa.project.servlet; +import jakarta.persistence.EntityManager; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; @@ -17,6 +18,7 @@ import javax.mail.Message; import uppa.project.Global; import uppa.project.dao.DAO; import uppa.project.dao.DAOException; +import uppa.project.dao.jpa.DAO_JPA_RecoveryPasswordToken; import uppa.project.dao.jpa.DAO_JPA_User; import uppa.project.dao.jpa.Game_JPA_DAO_Factory; import uppa.project.pojo.RecoveryPasswordToken; @@ -24,10 +26,12 @@ import uppa.project.pojo.User; import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; +import uppa.project.provider.EntityManagerProvider; @WebServlet(name = "forgottenPasswordServlet", value = "/forgotten-password") public class ForgottenPasswordServlet extends HttpServlet { + final static EntityManager em = EntityManagerProvider.getInstance(); public void init() { } @@ -53,6 +57,7 @@ public class ForgottenPasswordServlet extends HttpServlet { RecoveryPasswordToken recoveryPasswordToken = new RecoveryPasswordToken(token, user); CreateToken(recoveryPasswordToken); + sendRecoveryEmail(email, token); response.sendRedirect(request.getContextPath() + "/forgotten-password?success=200"); } @@ -119,10 +124,13 @@ public class ForgottenPasswordServlet extends HttpServlet { } public static void CreateToken(RecoveryPasswordToken token){ Game_JPA_DAO_Factory jpaDaoFactory = new Game_JPA_DAO_Factory(); + em.getTransaction().begin(); try { DAO daoJpaRecoveryPasswordToken = jpaDaoFactory.getDAORecoveryPasswordToken(); daoJpaRecoveryPasswordToken.create(token); + em.getTransaction().commit(); } catch (DAOException e) { + em.getTransaction().rollback(); throw new RuntimeException(e); } } diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/RegisterServlet.java b/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/RegisterServlet.java index 6bec8b7..5cbb262 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/RegisterServlet.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/servlet/RegisterServlet.java @@ -6,6 +6,7 @@ package uppa.project.servlet; +import jakarta.persistence.EntityManager; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; @@ -19,10 +20,12 @@ import java.util.Locale; import uppa.project.dao.DAOException; import uppa.project.dao.jpa.DAO_JPA_User; import uppa.project.pojo.User; +import uppa.project.provider.EntityManagerProvider; @WebServlet(name = "registerServlet", value = "/register") public class RegisterServlet extends HttpServlet { + static final EntityManager em = EntityManagerProvider.getInstance(); public void init() { } @@ -60,14 +63,18 @@ public class RegisterServlet extends HttpServlet { } public static void createAccount(String username, String email, String password, Date birth, String gender){ + em.getTransaction().begin(); try{ DAO_JPA_User daoJpaUser = new DAO_JPA_User(); User user = new User(username, email, password, birth, User.getGender(gender)); daoJpaUser.create(user); + em.getTransaction().commit(); } catch (DAOException | IllegalArgumentException e) { + em.getTransaction().rollback(); throw new RuntimeException(e); } } + public void destroy() { } }