Provides Novu integration for Symfony Notifier.
NOVU_DSN=novu://API_KEY@default
class NovuNotification extends Notification implements PushNotificationInterface
{
/** @var array<string, mixed> */
private array $overrides = [];
/** @var array<string, mixed> */
private array $context = [];
/**
* @param array<string, mixed> $overrides
*/
public function setOverrides(array $overrides): void
{
$this->overrides = $overrides;
}
/**
* @param array<string, mixed> $context
*/
public function setContext(array $context): void
{
$this->context = $context;
}
public function asPushMessage(
NovuSubscriberRecipient|RecipientInterface $recipient,
?string $transport = null,
): ?PushMessage {
return new PushMessage(
$this->getSubject(),
$this->getContent(),
new NovuOptions(
$recipient->getSubscriberId(),
$recipient->getFirstName(),
$recipient->getLastName(),
$recipient->getEmail(),
$recipient->getPhone(),
$recipient->getAvatar(),
$recipient->getLocale(),
$this->overrides,
[],
$this->context,
),
);
}
}$notification = new NovuNotification;
$notification->subject('test');
$notification->channels(['push']);
$notification->content(
json_encode(
[
'param1' => 'Lorum Ipsum',
]
)
);
$notification->setOverrides([
'email' => [
'from' => 'no-reply@toppy.nl',
'senderName' => 'No-Reply',
],
]);
$notification->setContext([
'tenant' => 'tenant-id',
'app' => 'app-id',
]);
$this->notifier->send(
$notification,
new NovuSubscriberRecipient(
"123",
'Wouter',
'van der Loop',
'woutervdl@toppy.nl',
null,
null,
null,
),
);This package is looking for a backer.
Help Symfony by sponsoring its development!