feat: dev-web - manage account creation

This commit is contained in:
kmitresse
2024-03-23 09:50:24 +01:00
parent f9622ec272
commit e7be7ea64f
3 changed files with 59 additions and 16 deletions
@@ -342,4 +342,11 @@ public class User implements Serializable {
* Enumération des genres possibles
*/
public enum Gender {MALE, FEMALE, OTHER}
public static Gender getGender(String value) throws IllegalArgumentException{
if (value.equals("MALE")) return Gender.MALE;
if (value.equals("FEMALE")) return Gender.FEMALE;
if (value.equals("OTHER")) return Gender.OTHER;
throw new IllegalArgumentException("Le genre selectionné n'existe pas");
}
}
@@ -12,6 +12,13 @@ import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import uppa.project.dao.DAOException;
import uppa.project.dao.jpa.DAO_JPA_User;
import uppa.project.pojo.User;
@WebServlet(name = "registerServlet", value = "/register")
public class RegisterServlet extends HttpServlet {
@@ -29,9 +36,38 @@ public class RegisterServlet extends HttpServlet {
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
// TODO : Implement the registration process
String username = request.getParameter("username");
String email = request.getParameter("email");
String birthdate = request.getParameter("birthdate");
System.out.println(birthdate);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date birth;
try {
birth = formatter.parse(birthdate);
} catch (ParseException e) {
throw new RuntimeException(e);
}
System.out.println("birth: " + birth);
String gender = request.getParameter("gender");
String password = request.getParameter("password");
String confirmPassword = request.getParameter("confirmPassword");
if (!password.equals(confirmPassword)) {
response.sendRedirect(request.getContextPath() + "/register?error=matching-password");
return;
}
createAccount(username, email, password, birth, gender);
response.sendRedirect(request.getContextPath() + "/login?success=account-created");
}
public static void createAccount(String username, String email, String password, Date birth, String gender){
try{
DAO_JPA_User daoJpaUser = new DAO_JPA_User();
User user = new User(username, email, password, birth, User.getGender(gender));
daoJpaUser.create(user);
} catch (DAOException | IllegalArgumentException e) {
throw new RuntimeException(e);
}
}
public void destroy() {
}
}
}