From c6fba262d10e8d7d4d9befce028dd541be9d4908 Mon Sep 17 00:00:00 2001 From: Aditya Bhansali <adityab3@illinois.edu> Date: Thu, 5 Nov 2020 15:45:19 -0600 Subject: [PATCH] Added a check for duplicate emails in AddPreRegisteredPatientAction --- .../action/AddPreRegisteredPatientAction.java | 7 +++++- .../ncsu/csc/itrust/dao/mysql/PatientDAO.java | 24 ++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/iTrust/src/edu/ncsu/csc/itrust/action/AddPreRegisteredPatientAction.java b/iTrust/src/edu/ncsu/csc/itrust/action/AddPreRegisteredPatientAction.java index 54dcbd3..639ffd0 100644 --- a/iTrust/src/edu/ncsu/csc/itrust/action/AddPreRegisteredPatientAction.java +++ b/iTrust/src/edu/ncsu/csc/itrust/action/AddPreRegisteredPatientAction.java @@ -49,7 +49,12 @@ public class AddPreRegisteredPatientAction { public long addPatient(PatientBean p) throws FormValidationException, ITrustException { - new AddPatientValidator().validate(p); + new AddPatientValidator().validate(p); + + // Make sure the email is unique + if (patientDAO.isEmailInUse(p.getEmail())) { + throw new ITrustException("This email is already in use. Please use another email address."); + } long newMID = patientDAO.addEmptyPatient(); // the new added row id in the database p.setMID(newMID); diff --git a/iTrust/src/edu/ncsu/csc/itrust/dao/mysql/PatientDAO.java b/iTrust/src/edu/ncsu/csc/itrust/dao/mysql/PatientDAO.java index 0b9ed80..416a2aa 100644 --- a/iTrust/src/edu/ncsu/csc/itrust/dao/mysql/PatientDAO.java +++ b/iTrust/src/edu/ncsu/csc/itrust/dao/mysql/PatientDAO.java @@ -222,7 +222,29 @@ public class PatientDAO { } finally { DBUtil.closeConnection(conn, ps); } - } + } + + public boolean isEmailInUse(String email) throws DBException { + Connection conn = null; + PreparedStatement ps = null; + boolean emailInUse = false; + try { + conn = factory.getConnection(); + ps = conn.prepareStatement("SELECT * FROM patients WHERE email=?"); + ps.setString(1, email); + ResultSet rs; + rs = ps.executeQuery(); + emailInUse = rs.next(); + rs.close(); + ps.close(); + } catch (SQLException e) { + + throw new DBException(e); + } finally { + DBUtil.closeConnection(conn, ps); + } + return emailInUse; + } public void addHistory(long pid, long hcpid) throws DBException { Connection conn = null; -- GitLab