Spaces:
No application file
No application file
| declare(strict_types=1); | |
| namespace Mautic\IntegrationsBundle\Sync\Notification\Helper; | |
| use Doctrine\ORM\ORMException; | |
| use Mautic\IntegrationsBundle\Sync\Exception\ObjectNotSupportedException; | |
| use Mautic\IntegrationsBundle\Sync\Notification\Writer; | |
| class UserNotificationHelper | |
| { | |
| public function __construct( | |
| private Writer $writer, | |
| private UserNotificationBuilder $userNotificationBuilder | |
| ) { | |
| } | |
| /** | |
| * @throws ORMException | |
| * @throws ObjectNotSupportedException | |
| */ | |
| public function writeNotification( | |
| string $message, | |
| string $integrationDisplayName, | |
| string $objectDisplayName, | |
| string $mauticObject, | |
| int $id, | |
| string $linkText, | |
| string $deduplicateValue = null, | |
| \DateTime $deduplicateDateTimeFrom = null | |
| ): void { | |
| $link = $this->userNotificationBuilder->buildLink($mauticObject, $id, $linkText); | |
| $userIds = $this->userNotificationBuilder->getUserIds($mauticObject, $id); | |
| foreach ($userIds as $userId) { | |
| $this->writer->writeUserNotification( | |
| $this->userNotificationBuilder->formatHeader($integrationDisplayName, $objectDisplayName), | |
| $this->userNotificationBuilder->formatMessage($message, $link), | |
| $userId, | |
| $deduplicateValue, | |
| $deduplicateDateTimeFrom | |
| ); | |
| } | |
| } | |
| } | |