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