feat: dev-web - add entityManager.getTransaction functions in Servlets

This commit is contained in:
kmitresse
2024-03-29 09:48:20 +01:00
parent 7a467efb83
commit f3698f5f78
2 changed files with 15 additions and 0 deletions
@@ -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<RecoveryPasswordToken> daoJpaRecoveryPasswordToken = jpaDaoFactory.getDAORecoveryPasswordToken();
daoJpaRecoveryPasswordToken.create(token);
em.getTransaction().commit();
} catch (DAOException e) {
em.getTransaction().rollback();
throw new RuntimeException(e);
}
}
@@ -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() {
}
}