feat: add data change notifications via 30s polling for all roles
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -33,6 +33,19 @@ Route::middleware('auth')->group(function () {
|
||||
// API routes moved here for session + CSRF middleware
|
||||
Route::prefix('api')->group(function () {
|
||||
|
||||
// Notifikasi — semua role authenticated
|
||||
Route::get('/notifications', function (\Illuminate\Http\Request $request) {
|
||||
$since = $request->query('since');
|
||||
$after = $since ? \Carbon\Carbon::parse($since) : now()->subMinutes(1);
|
||||
|
||||
return response()->json([
|
||||
'new_ibadah' => \App\Models\RumahIbadah::where('created_at', '>', $after)->count(),
|
||||
'new_miskin' => \App\Models\RumahMiskin::where('created_at', '>', $after)->count(),
|
||||
'latest_ibadah' => \App\Models\RumahIbadah::max('created_at'),
|
||||
'latest_miskin' => \App\Models\RumahMiskin::max('created_at'),
|
||||
]);
|
||||
});
|
||||
|
||||
// Rumah Ibadah — read: all roles, write: administrator + pengurus_ibadah
|
||||
Route::get('/ibadah', [IbadahController::class, 'index']);
|
||||
Route::middleware('role:administrator|pengurus_ibadah')->group(function () {
|
||||
|
||||
Reference in New Issue
Block a user