Merge branch 'feature-notification-management-not006' into feature-notification-management
This commit is contained in:
+55
@@ -1,9 +1,64 @@
|
||||
#include <stdexcept>
|
||||
#include "PaymentManagementService.h"
|
||||
#include "Invoice.h"
|
||||
#include "ServiceBooking.h"
|
||||
#include "Enums.h"
|
||||
#include "Timestamp.h"
|
||||
#include "Config.h"
|
||||
#include "User.h"
|
||||
#include "Factory.h"
|
||||
|
||||
util::Map<std::string, User*> PaymentManagementService::m_observers{};
|
||||
|
||||
void PaymentManagementService::attach(User* user)
|
||||
{
|
||||
if (user)
|
||||
{
|
||||
const std::string& userID = user->getId();
|
||||
if (m_observers.find(userID) == -1)
|
||||
{
|
||||
m_observers[userID] = user;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PaymentManagementService::detach(User* user)
|
||||
{
|
||||
if (user)
|
||||
{
|
||||
const std::string& userID = user->getId();
|
||||
if (m_observers.find(userID) != -1)
|
||||
{
|
||||
m_observers.remove(userID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PaymentManagementService::sendNotification(User* user, const std::string& title, const std::string& message)
|
||||
{
|
||||
if (user)
|
||||
{
|
||||
if (m_observers.find(user->getId()) != -1)
|
||||
{
|
||||
Notification* notification =
|
||||
Factory::getObject<Notification>(
|
||||
user->getId(),
|
||||
user,
|
||||
"PaymentManagementService: " + title,
|
||||
message,
|
||||
util::Timestamp()
|
||||
);
|
||||
if (notification)
|
||||
{
|
||||
user->addNotification(notification);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw std::runtime_error("Failed to create notification");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PaymentManagementService::sendPaymentReminders()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user