mirror of
https://github.com/librenms/librenms.git
synced 2024-09-21 10:28:13 +00:00
2b3575a5e9
* Apply code style * Remove explicit call to register policies * Shift core files * Shift config files * Default config files In an effort to make upgrading the constantly changing config files easier, Shift defaulted them and merged your true customizations - where ENV variables may not be used. * Bump Laravel dependencies * Add type hints for Laravel 10 * Shift cleanup * wip * wip * sync translation * Sync back config * Public Path Binding * QueryException * monolog * db::raw * monolog * db::raw * fix larastan collections * fix phpstan bug looping forever * larastan errors * larastan: fix column type * styleci * initialize array * fixes * fixes --------- Co-authored-by: Shift <shift@laravelshift.com>
49 lines
1.3 KiB
PHP
49 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Listeners;
|
|
|
|
use App\Events\UserCreated;
|
|
use App\Models\Notification;
|
|
use App\Models\NotificationAttrib;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class MarkNotificationsRead
|
|
{
|
|
/**
|
|
* Create the event listener.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct()
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Handle the event.
|
|
*
|
|
* @param UserCreated $event
|
|
* @return void
|
|
*/
|
|
public function handle(UserCreated $event): void
|
|
{
|
|
$user = $event->user;
|
|
// mark pre-existing notifications as read
|
|
NotificationAttrib::query()->insert(Notification::whereNotExists(function ($query) use ($user) {
|
|
return $query->select(DB::raw(1))
|
|
->from('notifications_attribs')
|
|
->whereRaw('notifications.notifications_id = notifications_attribs.notifications_id')
|
|
->where('notifications_attribs.user_id', $user->user_id);
|
|
})->get()->map(function ($notif) use ($user) {
|
|
return [
|
|
'notifications_id' => $notif->notifications_id,
|
|
'user_id' => $user->user_id,
|
|
'key' => 'read',
|
|
'value' => 1,
|
|
];
|
|
})->toArray());
|
|
|
|
\Log::info('Marked all notifications as read for user ' . $user->username);
|
|
}
|
|
}
|