feat: add controllers and routes for anggota, bantuan, permohonan transfer

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
GuavaPopper
2026-06-05 04:55:11 +07:00
parent e907100175
commit 804618bb54
4 changed files with 239 additions and 0 deletions
+26
View File
@@ -2,13 +2,16 @@
use App\Http\Controllers\ActivityLogController;
use App\Http\Controllers\AdminUserController;
use App\Http\Controllers\AnggotaKeluargaController;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\BackupController;
use App\Http\Controllers\BantuanController;
use App\Http\Controllers\ExportController;
use App\Http\Controllers\IbadahController;
use App\Http\Controllers\ImportController;
use App\Http\Controllers\MiskinController;
use App\Http\Controllers\SettingController;
use App\Http\Controllers\TransferController;
use Illuminate\Support\Facades\Route;
// Auth routes (public, redirect to /map if already logged in)
@@ -24,6 +27,7 @@ Route::middleware('auth')->group(function () {
Route::get('/map', fn() => view('map'));
Route::get('/data', fn() => view('data'));
Route::get('/dashboard', fn() => view('dashboard'))->name('dashboard');
Route::get('/permohonan', fn() => view('permohonan'))->name('permohonan');
// Export routes — semua role authenticated bisa ekspor
Route::get('/export/pdf', [ExportController::class, 'allMiskinPDF'])->name('export.pdf.all');
@@ -34,6 +38,28 @@ Route::middleware('auth')->group(function () {
// API routes moved here for session + CSRF middleware
Route::prefix('api')->group(function () {
// Anggota Keluarga — baca: semua; tulis: administrator + petugas_pendataan
Route::get('/miskin/{id}/anggota', [AnggotaKeluargaController::class, 'index']);
Route::middleware('role:administrator|petugas_pendataan')->group(function () {
Route::post('/miskin/{id}/anggota', [AnggotaKeluargaController::class, 'store']);
Route::put('/miskin/{id}/anggota/{aid}', [AnggotaKeluargaController::class, 'update']);
Route::delete('/miskin/{id}/anggota/{aid}', [AnggotaKeluargaController::class, 'destroy']);
});
// Riwayat Bantuan — baca: semua; tulis: administrator + petugas + pengurus_ibadah
Route::get('/miskin/{id}/bantuan', [BantuanController::class, 'index']);
Route::middleware('role:administrator|petugas_pendataan|pengurus_ibadah')->group(function () {
Route::post('/miskin/{id}/bantuan', [BantuanController::class, 'store']);
Route::delete('/miskin/{id}/bantuan/{bid}', [BantuanController::class, 'destroy']);
});
// Permohonan Transfer — lihat: semua; ajukan+proses: pengurus + admin
Route::get('/permohonan', [TransferController::class, 'index']);
Route::middleware('role:administrator|pengurus_ibadah')->group(function () {
Route::post('/permohonan', [TransferController::class, 'store']);
Route::put('/permohonan/{id}/respond', [TransferController::class, 'respond']);
});
// Notifikasi — semua role authenticated
Route::get('/notifications', function (\Illuminate\Http\Request $request) {
$since = $request->query('since');