Changed Shared Pointers to raw pointers in the service classes

This commit is contained in:
Jissin Sam Mathew
2026-04-16 18:05:11 +05:30
parent 6a373b48df
commit 138901b8e9
23 changed files with 15 additions and 37 deletions
@@ -4,5 +4,4 @@
* Author: Trenser * Author: Trenser
* Created: 06-Apr-2026 * Created: 06-Apr-2026
*/ */
#include "ApplicationConfig.h" #include "ApplicationConfig.h"
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 06-Apr-2026 * Created: 06-Apr-2026
*/ */
#pragma once #pragma once
namespace Config namespace Config
@@ -4,5 +4,4 @@
* Author: Trenser * Author: Trenser
* Created: 30-Apr-2026 * Created: 30-Apr-2026
*/ */
#include "AttendanceManagementService.h" #include "AttendanceManagementService.h"
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 30-Apr-2026 * Created: 30-Apr-2026
*/ */
#pragma once #pragma once
class AttendanceManagementService class AttendanceManagementService
{ {
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#include <stdexcept> #include <stdexcept>
#include "AuthenticationManagementService.h" #include "AuthenticationManagementService.h"
#include "ApplicationConfig.h" #include "ApplicationConfig.h"
@@ -81,7 +80,7 @@ AuthenticationDTO AuthenticationManagementService::login(const std::string& emai
*/ */
void AuthenticationManagementService::changePassword(const std::string& password) void AuthenticationManagementService::changePassword(const std::string& password)
{ {
Employee* authenticatedUser = m_dataStore.getAuthenticatedUser(); Employee* authenticatedUser = m_dataStore.getAuthenticatedEmployee();
if (authenticatedUser) if (authenticatedUser)
{ {
authenticatedUser->setEmployeePassword(password); authenticatedUser->setEmployeePassword(password);
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#pragma once #pragma once
#include <string> #include <string>
#include <map> #include <map>
@@ -4,5 +4,4 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#include "BookingManagementService.h" #include "BookingManagementService.h"
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#pragma once #pragma once
class BookingManagementService class BookingManagementService
{ {
@@ -18,14 +18,14 @@
void EmployeeManagementService::createEmployee(Enums::EmployeeType employeeType, Enums::EmployeeDesignation employeeDesignation, const std::string& email, const std::string& name, const std::string& phone) void EmployeeManagementService::createEmployee(Enums::EmployeeType employeeType, Enums::EmployeeDesignation employeeDesignation, const std::string& email, const std::string& name, const std::string& phone)
{ {
auto& employees = m_dataStore.getEmployees(); auto& employees = m_dataStore.getEmployees();
std::shared_ptr<Employee> authenticatedEmployee = m_dataStore.getAuthenticatedEmployee(); Employee* authenticatedEmployee = m_dataStore.getAuthenticatedEmployee();
if (!authenticatedEmployee) if (!authenticatedEmployee)
{ {
throw std::runtime_error("No authenticated user"); throw std::runtime_error("No authenticated user");
} }
Enums::EmployeeType authenticatedEmployeeType = authenticatedEmployee->getEmployeeType(); Enums::EmployeeType authenticatedEmployeeType = authenticatedEmployee->getEmployeeType();
std::shared_ptr<Employee> employee; Employee* employee;
std::shared_ptr<Payroll> payroll; Payroll* payroll;
if (employeeType != Enums::EmployeeType::GENERAL && util::hasActiveEmployeeOfType(employeeType, employees)) if (employeeType != Enums::EmployeeType::GENERAL && util::hasActiveEmployeeOfType(employeeType, employees))
{ {
throw std::runtime_error("Cannot create more than one employee of type " + Enums::getEmployeeTypeString(employeeType)); throw std::runtime_error("Cannot create more than one employee of type " + Enums::getEmployeeTypeString(employeeType));
@@ -135,13 +135,13 @@ bool EmployeeManagementService::updateDesignation(const std::string& id, Enums::
{ {
auto& authenticatedEmployee = m_dataStore.getAuthenticatedEmployee(); auto& authenticatedEmployee = m_dataStore.getAuthenticatedEmployee();
util::enforceAuthorization(authenticatedEmployee->getEmployeeType(), Enums::EmployeeType::ADMIN, Enums::EmployeeType::HR); util::enforceAuthorization(authenticatedEmployee->getEmployeeType(), Enums::EmployeeType::ADMIN, Enums::EmployeeType::HR);
std::map<std::string, std::shared_ptr<Employee>> employees = m_dataStore.getEmployees(); std::map<std::string, Employee*> employees = m_dataStore.getEmployees();
auto employeeIterator = employees.find(id); auto employeeIterator = employees.find(id);
if (employeeIterator == employees.end()) if (employeeIterator == employees.end())
{ {
return false; return false;
} }
auto generalEmployee = std::dynamic_pointer_cast<GeneralEmployee>((*employeeIterator).second); auto generalEmployee = dynamic_cast<GeneralEmployee*>((*employeeIterator).second);
if (generalEmployee) if (generalEmployee)
{ {
generalEmployee->setDesignation(designation); generalEmployee->setDesignation(designation);
@@ -149,24 +149,24 @@ bool EmployeeManagementService::updateDesignation(const std::string& id, Enums::
return true; return true;
} }
std::shared_ptr<const Employee> EmployeeManagementService::getCurrentEmployee() const Employee* EmployeeManagementService::getCurrentEmployee()
{ {
return m_dataStore.getAuthenticatedEmployee(); return m_dataStore.getAuthenticatedEmployee();
} }
void EmployeeManagementService::updateProfile(const std::string& name,const std::string& phone) void EmployeeManagementService::updateProfile(const std::string& name,const std::string& phone)
{ {
std::shared_ptr<Employee> employee = m_dataStore.getAuthenticatedEmployee(); Employee* employee = m_dataStore.getAuthenticatedEmployee();
employee->setEmployeeName(name); employee->setEmployeeName(name);
employee->setEmployeePhone(phone); employee->setEmployeePhone(phone);
} }
std::pair<Enums::EmployeeType, std::vector<std::shared_ptr<const Employee>>> EmployeeManagementService::searchEmployee(const std::string& name) std::pair<Enums::EmployeeType, std::vector<const Employee*>> EmployeeManagementService::searchEmployee(const std::string& name)
{ {
std::shared_ptr<Employee> currentUser = m_dataStore.getAuthenticatedEmployee(); Employee* currentUser = m_dataStore.getAuthenticatedEmployee();
Enums::EmployeeType employeeType = currentUser->getEmployeeType(); Enums::EmployeeType employeeType = currentUser->getEmployeeType();
employeeMap& employees = m_dataStore.getEmployees(); employeeMap& employees = m_dataStore.getEmployees();
std::vector<std::shared_ptr<const Employee>> employeeList; std::vector<const Employee*> employeeList;
if (employees.empty()) if (employees.empty())
{ {
return std::make_pair(employeeType, employeeList); return std::make_pair(employeeType, employeeList);
@@ -220,12 +220,12 @@ void EmployeeManagementService::saveEmployees()
FileManager<GeneralEmployee> generalEmployeeFileManager(Config::File::GENERAL_EMPLOYEES_FILE); FileManager<GeneralEmployee> generalEmployeeFileManager(Config::File::GENERAL_EMPLOYEES_FILE);
const auto& allEmployees = m_dataStore.getEmployees(); const auto& allEmployees = m_dataStore.getEmployees();
employeeMap employees; employeeMap employees;
std::map<std::string, std::shared_ptr<GeneralEmployee>> generalEmployees; std::map<std::string, GeneralEmployee*> generalEmployees;
for (auto& employeePair : allEmployees) for (auto& employeePair : allEmployees)
{ {
if (employeePair.second->getEmployeeType() == Enums::EmployeeType::GENERAL) if (employeePair.second->getEmployeeType() == Enums::EmployeeType::GENERAL)
{ {
generalEmployees.emplace(employeePair.first, std::static_pointer_cast<GeneralEmployee>(employeePair.second)); generalEmployees.emplace(employeePair.first, static_cast<GeneralEmployee*>(employeePair.second));
} }
else else
{ {
@@ -236,10 +236,10 @@ void EmployeeManagementService::saveEmployees()
generalEmployeeFileManager.save(generalEmployees); generalEmployeeFileManager.save(generalEmployees);
} }
std::vector<std::shared_ptr<Candidate>> EmployeeManagementService::getShorlistedCandidates() std::vector<Candidate*> EmployeeManagementService::getShorlistedCandidates()
{ {
candidateMap candidates = m_dataStore.getCandidates(); candidateMap candidates = m_dataStore.getCandidates();
std::vector<std::shared_ptr<Candidate>> shortlistedCandidates; std::vector<Candidate*> shortlistedCandidates;
for (auto& candidate : candidates) for (auto& candidate : candidates)
{ {
if (candidate.second->getCandidateStatus() == Enums::CandidateStatus::SHORTLISTED) if (candidate.second->getCandidateStatus() == Enums::CandidateStatus::SHORTLISTED)
@@ -4,5 +4,4 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#include "LeaveManagementService.h" #include "LeaveManagementService.h"
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#pragma once #pragma once
class LeaveManagementService class LeaveManagementService
{ {
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 01-Apr-2026 * Created: 01-Apr-2026
*/ */
#include "LogService.h" #include "LogService.h"
#include "Log.h" #include "Log.h"
#include "Factory.h" #include "Factory.h"
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 01-Apr-2026 * Created: 01-Apr-2026
*/ */
#pragma once #pragma once
#include "Log.h" #include "Log.h"
@@ -4,5 +4,4 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#include "NotificationManagementService.h" #include "NotificationManagementService.h"
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#pragma once #pragma once
class NotificationManagementService class NotificationManagementService
{ {
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#include <stdexcept> #include <stdexcept>
#include <algorithm> #include <algorithm>
#include "PayslipManagementService.h" #include "PayslipManagementService.h"
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#pragma once #pragma once
#include <string> #include <string>
#include<stdexcept> #include<stdexcept>
@@ -4,5 +4,4 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#include "TalentAcquisitionManagementService.h" #include "TalentAcquisitionManagementService.h"
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#pragma once #pragma once
class TalentAcquisitionManagementService class TalentAcquisitionManagementService
{ {
@@ -4,5 +4,4 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#include "TeamManagementService.h" #include "TeamManagementService.h"
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#pragma once #pragma once
class TeamManagementService class TeamManagementService
{ {
@@ -4,5 +4,4 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#include "TicketManagementService.h" #include "TicketManagementService.h"
@@ -4,7 +4,6 @@
* Author: Trenser * Author: Trenser
* Created: 30-Mar-2026 * Created: 30-Mar-2026
*/ */
#pragma once #pragma once
class TicketManagementService class TicketManagementService
{ {