![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/CoreBundle/Service/ |
<?php declare(strict_types=1); namespace Mautic\CoreBundle\Service; use Mautic\CoreBundle\Model\NotificationModel; use Mautic\UserBundle\Entity\User; final class BulkNotification implements BulkNotificationInterface { /** * @var mixed[] */ private array $notifications = []; public function __construct( private NotificationModel $notificationModel ) { } public function addNotification( string $deduplicateValue, string $message, string $type = null, string $header = null, string $iconClass = null, \DateTime $datetime = null, User $user = null ): void { if (isset($this->notifications[$deduplicateValue])) { return; } $this->notifications[$deduplicateValue] = [ 'message' => $message, 'type' => $type, 'header' => $header, 'iconClass' => $iconClass, 'datetime' => $datetime, 'user' => $user, ]; } /** * @param \DateTime|null $deduplicateDateTimeFrom If last 24 hours for deduplication does not fit, change it here */ public function flush(\DateTime $deduplicateDateTimeFrom = null): void { foreach ($this->notifications as $deduplicateValue => $data) { $this->notificationModel->addNotification( $data['message'], $data['type'], false, $data['header'], $data['iconClass'], $data['datetime'], $data['user'], $deduplicateValue, $deduplicateDateTimeFrom ); unset($this->notifications[$deduplicateValue]); } } }