Validate Phone and Email when registering user
This commit is contained in:
@@ -5,6 +5,8 @@ Date: 19-02-2026
|
|||||||
|
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cctype>
|
||||||
#include "FoodDeliveryController.h"
|
#include "FoodDeliveryController.h"
|
||||||
#include "Menu.h"
|
#include "Menu.h"
|
||||||
#include "RestaurantOwnerMenu.h"
|
#include "RestaurantOwnerMenu.h"
|
||||||
@@ -234,6 +236,34 @@ static deliveryAssignments::iterator selectDeliveryAssignmentFromList(deliveryAs
|
|||||||
return assignmentIterator;
|
return assignmentIterator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool isPhoneNumberValid(const std::string& phoneNumber) {
|
||||||
|
if (phoneNumber.size() != 10)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return std::all_of(phoneNumber.begin(), phoneNumber.end(),
|
||||||
|
[](char character)
|
||||||
|
{
|
||||||
|
return std::isdigit(character);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isEmailValid(const std::string& email) {
|
||||||
|
int index = email.find('@');
|
||||||
|
if (index == std::string::npos) return false;
|
||||||
|
if (email.find('@', index + 1) != std::string::npos)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (index == 0 || index == email.size() - 1)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void FoodDeliveryController::loadStates()
|
void FoodDeliveryController::loadStates()
|
||||||
{
|
{
|
||||||
FileDatabase<User> userDatabase(USERS_FILE);
|
FileDatabase<User> userDatabase(USERS_FILE);
|
||||||
@@ -506,8 +536,18 @@ void FoodDeliveryController::registerUser()
|
|||||||
util::readString(name);
|
util::readString(name);
|
||||||
std::cout << "Enter Phone: ";
|
std::cout << "Enter Phone: ";
|
||||||
util::readString(phone);
|
util::readString(phone);
|
||||||
|
if (!isPhoneNumberValid(phone))
|
||||||
|
{
|
||||||
|
std::cout << "Phone Number is Invalid. Cannot Register User!\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
std::cout << "Enter Email: ";
|
std::cout << "Enter Email: ";
|
||||||
util::readString(email);
|
util::readString(email);
|
||||||
|
if (!isEmailValid(email))
|
||||||
|
{
|
||||||
|
std::cout << "Email ID is Invalid. Cannot Register User!\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
std::cout << "Enter Address: ";
|
std::cout << "Enter Address: ";
|
||||||
util::readString(address);
|
util::readString(address);
|
||||||
while (true)
|
while (true)
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
1|alex|Alex Miller|100000001|alex|alex@mail.com|CityOne|RestaurantOwner
|
1|alex|Alex Miller|1000000010|alex|alex@mail.com|CityOne|RestaurantOwner
|
||||||
2|jordan|Jordan Smith|100000002|jordan|jordan@mail.com|CityTwo|RestaurantOwner
|
2|jordan|Jordan Smith|1000000020|jordan|jordan@mail.com|CityTwo|RestaurantOwner
|
||||||
3|taylor|Taylor Brown|100000003|taylor|taylor@mail.com|CityThree|RestaurantOwner
|
3|taylor|Taylor Brown|1000000030|taylor|taylor@mail.com|CityThree|RestaurantOwner
|
||||||
4|emma|Emma Wilson|100000004|emma|emma@mail.com|CityOne|Customer
|
4|emma|Emma Wilson|1000000040|emma|emma@mail.com|CityOne|Customer
|
||||||
5|liam|Liam Johnson|100000005|liam|liam@mail.com|CityTwo|Customer
|
5|liam|Liam Johnson|1000000050|liam|liam@mail.com|CityTwo|Customer
|
||||||
6|olivia|Olivia Davis|100000006|olivia|olivia@mail.com|CityThree|Customer
|
6|olivia|Olivia Davis|1000000060|olivia|olivia@mail.com|CityThree|Customer
|
||||||
7|noah|Noah Anderson|100000007|noah|noah@mail.com|CityOne|DeliveryPartner
|
7|noah|Noah Anderson|1000000070|noah|noah@mail.com|CityOne|DeliveryPartner
|
||||||
8|ava|Ava Martinez|100000008|ava|ava@mail.com|CityTwo|DeliveryPartner
|
8|ava|Ava Martinez|1000000080|ava|ava@mail.com|CityTwo|DeliveryPartner
|
||||||
9|ethan|Ethan Thomas|100000009|ethan|ethan@mail.com|CityThree|DeliveryPartner
|
9|ethan|Ethan Thomas|1000000090|ethan|ethan@mail.com|CityThree|DeliveryPartner
|
||||||
|
|||||||
Reference in New Issue
Block a user