change dlogin in web.php and added web push subscription model file
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 13s
Gemini PR Review / Gemini PR Review (pull_request) Successful in 17s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 13s
Laravel Larastan / larastan (pull_request) Failing after 12m59s
Laravel Pint / pint (pull_request) Failing after 13m9s

This commit is contained in:
dhanabalan
2026-01-27 11:01:28 +05:30
parent 6f4d81025b
commit 648b676453
2 changed files with 56 additions and 10 deletions

View File

@@ -0,0 +1,19 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class WebPushSubscription extends Model
{
protected $table = 'push_subscriptions';
protected $fillable = [
'subscribable_type',
'subscribable_id',
'endpoint',
'public_key',
'auth_token',
'content_encoding',
];
}

View File

@@ -6,6 +6,7 @@ use App\Models\EquipmentMaster;
use App\Models\InvoiceValidation; use App\Models\InvoiceValidation;
use App\Models\Plant; use App\Models\Plant;
use App\Models\User; use App\Models\User;
use App\Models\WebPushSubscription;
use Filament\Facades\Filament; use Filament\Facades\Filament;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
@@ -31,20 +32,46 @@ use App\Http\Livewire\CustomLogin;
// return response()->json(['success' => true]); // return response()->json(['success' => true]);
// })->middleware('auth'); // })->middleware('auth');
Route::post('/push/subscribe', function (Request $request) { // Route::post('/push/subscribe', function (Request $request) {
// $user = Filament::auth()->user();
// abort_if(!$user, 401);
// $user->updatePushSubscription(
// $request->endpoint,
// $request->keys['p256dh'],
// $request->keys['auth'],
// $request->contentEncoding ?? 'aesgcm'
// );
// return response()->json(['success' => true]);
// });
Route::post('/push/subscribe', function (Request $request) {
$user = Filament::auth()->user(); $user = Filament::auth()->user();
abort_if(!$user, 401);
abort_if(!$user, 401); $request->validate([
'endpoint' => 'required|string',
'keys.p256dh' => 'required|string',
'keys.auth' => 'required|string',
]);
$user->updatePushSubscription( WebPushSubscription::updateOrCreate(
$request->endpoint, // ✅ UNIQUE PER DEVICE
$request->keys['p256dh'], ['endpoint' => $request->endpoint],
$request->keys['auth'], [
$request->contentEncoding ?? 'aesgcm' 'subscribable_type' => get_class($user), // 🔥 important
); 'subscribable_id' => $user->id,
'public_key' => $request->keys['p256dh'],
'auth_token' => $request->keys['auth'],
'content_encoding' => $request->contentEncoding ?? 'aesgcm',
]
);
return response()->json(['success' => true]); return response()->json(['success' => true]);
}); });
// routes/web.php // routes/web.php