class NotificationSyncer

The Notification Syncer commits notification blueprints to the database, and sends them via email depending on user preference. Where a blueprint represents a single notification, the syncer associates it with a particular user(s) and makes it available in their inbox.

Properties

static protected bool $onePerUser <p>Whether or not notifications are being limited to one per user.</p>
static protected int[] $sentTo <p>An internal list of user IDs that notifications have been sent to.</p>
static protected NotificationDriverInterface[] $notificationDrivers <p>A map of notification drivers.</p>
static protected array $beforeSendingCallbacks

Methods

void
sync(BlueprintInterface $blueprint, array $users)

<p>Sync a notification so that it is visible to the specified users, and not visible to anyone else. If it is being made visible for the first time, attempt to send the user an email.</p>

void
delete(BlueprintInterface $blueprint)

<p>Delete a notification for all users.</p>

void
restore(BlueprintInterface $blueprint)

<p>Restore a notification for all users.</p>

void
onePerUser(callable $callback)

<p>Limit notifications to one per user for the entire duration of the given callback.</p>

setDeleted(array $ids, bool $isDeleted)

<p>Set the deleted status of a list of notification records.</p>

bool
userCanSeeSubject(User $user, AbstractModel|null $subject)

<p>Check access to determine if the recipient is allowed to receive the notification.</p>

static void
addNotificationDriver(string $driverName, NotificationDriverInterface $driver)

<p>Adds a notification driver to the list.</p>

static array
getNotificationDrivers()

No description

static void
beforeSending(callable|string $callback)

No description

Details

void sync(BlueprintInterface $blueprint, array $users)

<p>Sync a notification so that it is visible to the specified users, and not visible to anyone else. If it is being made visible for the first time, attempt to send the user an email.</p>

Parameters

BlueprintInterface $blueprint
array $users

Return Value

void

void delete(BlueprintInterface $blueprint)

<p>Delete a notification for all users.</p>

Parameters

BlueprintInterface $blueprint

Return Value

void

void restore(BlueprintInterface $blueprint)

<p>Restore a notification for all users.</p>

Parameters

BlueprintInterface $blueprint

Return Value

void

void onePerUser(callable $callback)

<p>Limit notifications to one per user for the entire duration of the given callback.</p>

Parameters

callable $callback

Return Value

void

protected setDeleted(array $ids, bool $isDeleted)

<p>Set the deleted status of a list of notification records.</p>

Parameters

array $ids
bool $isDeleted

protected bool userCanSeeSubject(User $user, AbstractModel|null $subject)

<p>Check access to determine if the recipient is allowed to receive the notification.</p>

Parameters

User $user
AbstractModel|null $subject

Return Value

bool

static void addNotificationDriver(string $driverName, NotificationDriverInterface $driver)

<p>Adds a notification driver to the list.</p>

Parameters

string $driverName
NotificationDriverInterface $driver

Return Value

void

static array getNotificationDrivers()

Return Value

array

static void beforeSending(callable|string $callback)

Parameters

callable|string $callback

Return Value

void