Fix Update Profile and User Validation Issues

- Included Validator.h in UserManagementService.cpp for duplicate checks.
- Enhanced updateUserDetails in UserManagementService to validate:
  - Throw error if user does not exist.
  - Throw error if email already exists among active users.
  - Throw error if phone number already exists among active users.
- Implemented new duplicate validation functions in Validator.cpp:
  - isUsernameDuplicate
  - isPhoneDuplicate
  - isEmailDuplicate
- Declared new duplicate validation functions in Validator.h.
- Updated CustomerMenu::updateDetails:
  - Added "Update Details" header for clarity.
  - Improved error messages with newline formatting.
  - Added success message with newline formatting.

Fixes #1746
This commit is contained in:
Avinash Rajesh
2026-05-26 20:03:02 +05:30
committed by Joel Thomas
parent 80b91f3f1b
commit 33cbb1dac3
3 changed files with 48 additions and 5 deletions
@@ -143,12 +143,14 @@ Return type: void
void CustomerMenu::updateDetails()
{
std::string email, phone;
util::Map<std::string, const User*> userList = m_controller.getUsers();
util::clear();
std::cout << "Update Details\n";
std::cout << "Enter new email: ";
util::read(email);
if (!util::isEmailValid(email))
{
std::cout << "Error: Email is invalid!";
std::cout << "Error: Email is invalid!\n";
util::pressEnter();
return;
}
@@ -156,12 +158,12 @@ void CustomerMenu::updateDetails()
util::read(phone);
if (!util::isPhoneNumberValid(phone))
{
std::cout << "Error: Phone number is invalid!";
std::cout << "Error: Phone number is invalid!\n";
util::pressEnter();
return;
}
m_controller.updateUserDetails(email, phone);
std::cout << "Profile details updated successfully";
std::cout << "Profile details updated successfully\n";
util::pressEnter();
}