Merge branch 'feature-notification-management' into feature
This commit is contained in:
+64
-1
@@ -5,6 +5,7 @@ Description: Implementation file containing the method definitions of the
|
||||
Author: Trenser
|
||||
Date:19-May-2026
|
||||
*/
|
||||
#include "UserManagementService.h"
|
||||
#include "Config.h"
|
||||
#include "Enums.h"
|
||||
#include "Factory.h"
|
||||
@@ -12,7 +13,7 @@ Date:19-May-2026
|
||||
#include "PaymentManagementService.h"
|
||||
#include "ServiceManagementService.h"
|
||||
#include "User.h"
|
||||
#include "UserManagementService.h"
|
||||
#include "Vector.h"
|
||||
#include <stdexcept>
|
||||
|
||||
void UserManagementService::ensureAdminExists()
|
||||
@@ -140,3 +141,65 @@ void UserManagementService::removeUser(const std::string& userID)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Function: getUserNotifications
|
||||
Description: Retrieves all notifications associated with a given user ID.
|
||||
Parameters:
|
||||
- userID: The unique ID of the user whose notifications are to be retrieved.
|
||||
Returns:
|
||||
- util::Vector<Notification*> containing all notifications for the user.
|
||||
Throws:
|
||||
- std::runtime_error if no user is found with the given UserID or if the User object is invalid.
|
||||
*/
|
||||
util::Vector<Notification*> UserManagementService::getUserNotifications(const std::string& userID)
|
||||
{
|
||||
auto& usersMap = m_dataStore.getUsers();
|
||||
if (usersMap.find(userID) == -1)
|
||||
{
|
||||
throw std::runtime_error("No user found with given UserID");
|
||||
}
|
||||
User* user = usersMap[userID];
|
||||
if (user)
|
||||
{
|
||||
auto& notifications = user->getNotifications();
|
||||
int numberOfNotifications = notifications.getSize();
|
||||
util::Vector<Notification*> notificationsVector;
|
||||
for (int index = 0; index < numberOfNotifications; index++)
|
||||
{
|
||||
notificationsVector.push_back(notifications.getValueAt(index));
|
||||
}
|
||||
return notificationsVector;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw std::runtime_error("Invalid User object");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Function: deleteNotification
|
||||
Description: Deletes a specific notification associated with a given user ID.
|
||||
Parameters:
|
||||
- notificationID: The unique ID of the notification to be deleted.
|
||||
- userID: The unique ID of the user whose notification is to be deleted.
|
||||
Returns:
|
||||
- void
|
||||
Throws:
|
||||
- std::runtime_error if no user is found with the given UserID or if no notification is found with the given NotificationID.
|
||||
*/
|
||||
void UserManagementService::deleteNotification(const std::string& notificationID, const std::string& userID)
|
||||
{
|
||||
auto& usersMap = m_dataStore.getUsers();
|
||||
if (usersMap.find(userID) == -1)
|
||||
{
|
||||
throw std::runtime_error("No user found with given UserID");
|
||||
}
|
||||
User* user = usersMap[userID];
|
||||
auto& notifications = user->getNotifications();
|
||||
if (notifications.find(notificationID) == -1)
|
||||
{
|
||||
throw std::runtime_error("No notification found with given NotificationID");
|
||||
}
|
||||
notifications.remove(notificationID);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user