Add Employee Listing Feature

<UserStory> EMP007 : View All Employees  </UserStory>

<Changes>
 - Implemented getEmployees() in ZenvyController to return list of employees
 - Added working getEmployees() implementation in EmployeeManagementService
 - Fixed iterator usage to correctly extract map values into Employees vector
 - Added viewEmployees() UI flow in EmployeeMenu
 - Integrated employee listing into EmployeeMenu option flow
 - Added enumToString() helper for printing employee roles
 - Improved formatting and filtering of ACTIVE employees in employee listing
 - Performed minor code cleanup and consistency adjustments in controller and menu
</Changes>

<Review>
  Smitha Mohan
</Review>
This commit is contained in:
Tinu Johnson
2026-04-07 17:38:53 +05:30
parent 07bd979685
commit 1785660e94
5 changed files with 58 additions and 9 deletions
@@ -27,10 +27,12 @@ bool ZenvyController::deactivateEmployee(const std::string& id)
return m_employeeManagementService->deactivateEmployee(id);
}
Employees EmployeeManagementService::getEmployees()
Employees ZenvyController::getEmployee()
{
return m_employeeManagementService->getEmployees();
}
std::shared_ptr<const Employee> EmployeeManagementService::getEmployee(const std::string& id)
{
}
@@ -47,6 +47,6 @@ public:
//Employee Management
void createEmployee(Enums::EmployeeType, const std::string&, const std::string&, const std::string&, const std::string&);
bool deactivateEmployee(const std::string&);
Employees getEmployees();
std::shared_ptr<const Employee> getEmployee(const std::string&);
Employees getEmployee();
};
@@ -8,10 +8,17 @@ bool EmployeeManagementService::deactivateEmployee(const std::string& id)
{
}
Employees EmployeeManagementService::getEmployees()
{
}
std::shared_ptr<const Employee> EmployeeManagementService::getEmployee(const std::string& id)
{
}
Employees EmployeeManagementService::getEmployees()
{
Employees result;
auto& employee = m_dataStore.getEmployees();
for (const auto& iterator : employee)
{
result.push_back(iterator.second);
}
return result;
}
@@ -48,11 +48,11 @@ bool EmployeeMenu::handleOperation(int choice)
break;
case 6:
m_zenvyController.viewTicketHistory();
break;
break;*/
case 7:
m_zenvyController.viewEmployees();
viewEmployees();
break;
case 8:
/*case 8:
m_zenvyController.searchEmployee();
break;
case 9:
@@ -76,4 +76,43 @@ bool EmployeeMenu::handleOperation(int choice)
std::cout << "Enter a valid choice!" << std::endl;
}
return true;
}
void EmployeeMenu::viewEmployees()
{
std::cout << "EMPID\t\tName\t\tRole\t\tTeamId\t\tEmail\t\tPhone\t\t";
auto employee = m_zenvyController->getEmployee();
for (const auto& iterator : employee)
{
if (iterator->getEmployeeAccountStatus() == Enums::AccountStatus::ACTIVE)
{
std::cout << iterator->getEmployeeId() << "\t"
<< iterator->getEmployeeName() << "\t"
<< enumToString(iterator->getEmployeeType()) << "\t"
<< iterator->getEmployeeTeamId() << "\t"
<< iterator->getEmployeeEmail() << "\t"
<< iterator->getEmployeePhone() << std::endl;
}
}
}
std::string enumToString(Enums::EmployeeType type)
{
switch (type)
{
case Enums::EmployeeType::IT:
return "IT Executive";
case Enums::EmployeeType::FINANCE:
return "Finance Executive";
case Enums::EmployeeType::GENERAL:
return "General Employee";
case Enums::EmployeeType::HR:
return "HR";
case Enums::EmployeeType::TAG:
return "Talent Acquacition Executive";
case Enums::EmployeeType::TEAM:
return "Team Executive";
case Enums::EmployeeType::INVALID:
return "Invalid";
}
}
@@ -10,5 +10,6 @@ public:
EmployeeMenu() : m_zenvyController(std::make_shared<ZenvyController>()) {};
void run();
bool handleOperation(int);
void viewEmployees();
};