Files
trackbugs/app/Http/Controllers/NotificationController.php
2026-03-19 19:47:06 +02:00

41 lines
1.1 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
class NotificationController extends Controller
{
public function index(Request $request): View
{
$notifications = $request->user()
->notifications()
->latest()
->cursorPaginate(20);
return view('notifications.index', compact('notifications'));
}
public function markAsRead(Request $request, string $id): RedirectResponse
{
$notification = $request->user()->notifications()->findOrFail($id);
$notification->markAsRead();
$data = $notification->data;
if (! empty($data['project_id']) && ! empty($data['issue_id'])) {
return redirect()->route('projects.issues.show', [$data['project_id'], $data['issue_id']]);
}
return back();
}
public function markAllAsRead(Request $request): RedirectResponse
{
$request->user()->unreadNotifications->markAsRead();
return back()->with('status', 'All notifications marked as read.');
}
}