refactor(DevWeb): Edit Bean file to handle errors

This commit is contained in:
Lucàs
2024-04-20 21:20:24 +02:00
parent 8e954a0656
commit 8d6c0999c9
4 changed files with 35 additions and 20 deletions
@@ -5,6 +5,8 @@ import uppa.project.database.dao.DAO;
import uppa.project.database.dao.DAOException;
import uppa.project.database.dao.jpa.Game_JPA_DAO_Factory;
import uppa.project.database.pojo.User;
import uppa.project.json.HttpResponse;
import uppa.project.json.HttpResponseCode;
public class LoginBean implements Serializable {
@@ -14,6 +16,8 @@ public class LoginBean implements Serializable {
private String password;
private User user;
private HttpResponse error;
public LoginBean() {
}
@@ -23,27 +27,28 @@ public class LoginBean implements Serializable {
}
public boolean validate() {
Game_JPA_DAO_Factory factory = new Game_JPA_DAO_Factory();
try {
DAO<User> userDao = factory.getDAOUser();
User[] user = userDao.findByField("username", username);
System.out.println(user.length);
for (User u : user) {
if (u.getUsername().equals(username)) {
if (u.getUsername().equals(username) && u.verifyPassword(password)) {
this.user = u;
return true;
}
}
} catch (DAOException e) {
throw new RuntimeException(e);
}
error = new HttpResponse(HttpResponseCode.INTERNAL_SERVER_ERROR,"Une erreur est survenue (DB_CONNECTION_ERROR:001)");
return false;
}
public User getUser() {
return user;
error = new HttpResponse(HttpResponseCode.NOT_FOUND,"Le nom d'utilisateur ou le mot de passe est incorrect.");
return false;
}
public LoginBean setUsername(String username) {
@@ -55,4 +60,12 @@ public class LoginBean implements Serializable {
this.password = password;
return this;
}
public User getUser() {
return user;
}
public HttpResponse getError() {
return error;
}
}
@@ -10,6 +10,8 @@ import uppa.project.database.dao.DAOException;
import uppa.project.database.dao.EntityManagerProvider;
import uppa.project.database.dao.jpa.Game_JPA_DAO_Factory;
import uppa.project.database.pojo.User;
import uppa.project.json.HttpResponse;
import uppa.project.json.HttpResponseCode;
public class RegisterBean implements Serializable {
@@ -20,7 +22,8 @@ public class RegisterBean implements Serializable {
private String password;
private String birth;
private String gender;
private String errorMessage;
private HttpResponse error;
public RegisterBean() {
}
@@ -44,18 +47,18 @@ public class RegisterBean implements Serializable {
// Check if the username is already taken
User[] users = userDAO.findByField("username", username);
if (users.length > 0) {
errorMessage = "Ce nom d'utilisateur est déjà pris";
error = new HttpResponse(HttpResponseCode.UNAUTHORIZED, "Ce nom d'utilisateur est déjà pris");
return false;
}
// Check if the email is already taken
users = userDAO.findByField("email", email);
if (users.length > 0) {
errorMessage = "Cet email est déjà utilisé";
error = new HttpResponse(HttpResponseCode.UNAUTHORIZED, "Cet email est déjà utilisé");
return false;
}
} catch (DAOException e) {
errorMessage = "Une erreur est survenue (DB_CONNECTION_ERROR)";
error = new HttpResponse(HttpResponseCode.INTERNAL_SERVER_ERROR, "Une erreur est survenue (DB_CONNECTION_ERROR:001)");
return false;
}
@@ -67,7 +70,7 @@ public class RegisterBean implements Serializable {
try {
user.setGender(User.Gender.valueOf(gender));
} catch (IllegalArgumentException e) {
errorMessage = "Le genre n'est pas valide";
error = new HttpResponse(HttpResponseCode.UNAUTHORIZED, "Le genre n'est pas valide");
return false;
}
@@ -78,7 +81,7 @@ public class RegisterBean implements Serializable {
Date date = Date.from(localDate.atStartOfDay(defaultZoneId).toInstant());
user.setBirth(date);
} catch (Exception e) {
errorMessage = "La date de naissance n'est pas valide";
error = new HttpResponse(HttpResponseCode.UNAUTHORIZED, "La date de naissance n'est pas valide");
return false;
}
@@ -91,6 +94,7 @@ public class RegisterBean implements Serializable {
entityManager.getTransaction().commit();
return true;
} catch (DAOException e) {
error = new HttpResponse(HttpResponseCode.INTERNAL_SERVER_ERROR, "Une erreur est survenue (DB_CONNECTION_ERROR:002)");
entityManager.getTransaction().rollback();
}
return false;
@@ -121,7 +125,7 @@ public class RegisterBean implements Serializable {
return this;
}
public String getErrorMessage() {
return errorMessage;
public HttpResponse getError() {
return error;
}
}
@@ -46,10 +46,8 @@ public class LoginServlet extends HttpServlet {
httpResponse = new HttpResponse(HttpResponseCode.OK, "Login success");
} else {
httpResponse = new HttpResponse(HttpResponseCode.UNAUTHORIZED, "<strong>Erreur de connexion:</strong> Le nom d'utilisateur ou le " +
"mot de passe est incorrect.");
httpResponse = loginBean.getError();
}
out.println(gson.toJson(httpResponse));
out.flush();
}
@@ -51,7 +51,7 @@ public class RegisterServlet extends HttpServlet {
"Register success"
);
} else {
httpResponse = new HttpResponse(HttpResponseCode.UNAUTHORIZED, registerBean.getErrorMessage());
httpResponse = registerBean.getError();
}
out.println(gson.toJson(httpResponse));