Skip to content

Repository files navigation

Novu Notifier

Provides Novu integration for Symfony Notifier.

DSN example

NOVU_DSN=novu://API_KEY@default

Notification example

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,
    ),
);

Sponsor

This package is looking for a backer.

Help Symfony by sponsoring its development!

Resources

About

Provides Novu integration for Symfony Notifier.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages