Spaces:
No application file
No application file
declare(strict_types=1); | |
namespace Mautic\IntegrationsBundle\Sync\Notification\Helper; | |
use Mautic\IntegrationsBundle\Sync\Exception\ObjectNotSupportedException; | |
use Symfony\Contracts\Translation\TranslatorInterface; | |
class UserNotificationBuilder | |
{ | |
public function __construct( | |
private UserHelper $userHelper, | |
private OwnerProvider $ownerProvider, | |
private RouteHelper $routeHelper, | |
private TranslatorInterface $translator | |
) { | |
} | |
/** | |
* @return int[] | |
* | |
* @throws ObjectNotSupportedException | |
*/ | |
public function getUserIds(string $mauticObject, int $id): array | |
{ | |
$owners = $this->ownerProvider->getOwnersForObjectIds($mauticObject, [$id]); | |
if (!empty($owners[0]['owner_id'])) { | |
return [(int) $owners[0]['owner_id']]; | |
} | |
return $this->userHelper->getAdminUsers(); | |
} | |
public function buildLink(string $mauticObject, int $id, string $linkText): string | |
{ | |
return $this->routeHelper->getLink($mauticObject, $id, $linkText); | |
} | |
public function formatHeader(string $integrationDisplayName, string $objectDisplayName): string | |
{ | |
return $this->translator->trans( | |
'mautic.integration.sync.user_notification.header', | |
[ | |
'%integration%' => $integrationDisplayName, | |
'%object%' => $objectDisplayName, | |
] | |
); | |
} | |
public function formatMessage(string $message, string $link): string | |
{ | |
return $this->translator->trans( | |
'mautic.integration.sync.user_notification.sync_error', | |
[ | |
'%name%' => $link, | |
'%message%' => $message, | |
] | |
); | |
} | |
} | |