33 lines
775 B
PHP
33 lines
775 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Http\Controllers;
|
||
|
|
|
||
|
|
use Illuminate\Http\RedirectResponse;
|
||
|
|
use Illuminate\Http\Request;
|
||
|
|
use Illuminate\Support\Facades\Cache;
|
||
|
|
|
||
|
|
class NotificationController extends Controller
|
||
|
|
{
|
||
|
|
public function markAsRead(Request $request, string $id): RedirectResponse
|
||
|
|
{
|
||
|
|
$request->user()
|
||
|
|
->notifications()
|
||
|
|
->where('id', $id)
|
||
|
|
->firstOrFail()
|
||
|
|
->markAsRead();
|
||
|
|
|
||
|
|
Cache::forget("user:{$request->user()->id}:unread_notifications");
|
||
|
|
|
||
|
|
return back();
|
||
|
|
}
|
||
|
|
|
||
|
|
public function markAllAsRead(Request $request): RedirectResponse
|
||
|
|
{
|
||
|
|
$request->user()->unreadNotifications->markAsRead();
|
||
|
|
|
||
|
|
Cache::forget("user:{$request->user()->id}:unread_notifications");
|
||
|
|
|
||
|
|
return back();
|
||
|
|
}
|
||
|
|
}
|