group(function () { Route::get('/login', [LoginController::class, 'showLoginForm'])->name('login.index'); Route::post('/login', [LoginController::class, 'authenticate']); Route::get('/logout', [LoginController::class, 'logout']); Route::get('/reload-captcha', 'CaptchaController@reload')->name('reload.captcha'); }); Route::controller(RegisterController::class)->group(function () { Route::get('/register', [RegisterController::class, 'showRegistrationForm'])->name('register.index'); Route::post( '/register', [RegisterController::class, 'register']); Route::get('/reload-captcha', [CaptchaController::class, 'reload'])->name('reload.captcha'); }); Route::get('/email/verify', function () { return view('auth.verify-email'); })->middleware('auth')->name('verification.notice'); Route::get('/email/verify/{id}/{hash}', [VerificationController::class, 'verify']) ->middleware(['signed']) ->name('verification.verify'); Route::post('/email/verification-notification', function (Request $request) { $request->user()->sendEmailVerificationNotification(); return back()->with('message', 'Tautan verifikasi telah dikirim!'); })->middleware(['auth', 'throttle:6,1'])->name('verification.send'); Route::post('/email/verification-notification', function (Request $request) { $request->user()->sendEmailVerificationNotification(); return back()->with('message', 'Tautan verifikasi telah dikirim!'); })->middleware(['auth', 'throttle:6,1'])->name('verification.send'); Route::get('/dashboard', [DashboardController::class, 'index'])->middleware('auth')->name('dashboard'); Route::resource('/dashboard/controls', DashboardHistoryController::class)->middleware('auth'); Route::get('/dashboard/cetak', [DashboardHistoryController::class, 'cetak'])->name('dashboard.cetak'); // Tambahkan rute untuk metode cetak Route::get('/dashboard/filter', [DashboardHistoryController::class, 'index'])->name('dashboard.filter'); Route::get('/dashboard/print', [DashboardHistoryController::class, 'print'])->name('dashboard.print'); Route::get('/dashboard/histories', [DashboardHistoryController::class, 'index'])->name('dashboard.filter'); Route::get('/dashboard/Sensors', [DashboardHistoryController::class, 'index'])->name('dashboard.filter'); Route::get('/dashboard/histories', [DashboardHistoryController::class, 'index'])->name('dashboard.histories.index'); // web.php Route::get('/kebun/{id}/monitoring', [DashboardHistoryController::class, 'show'])->name('kebun.monitoring'); Route::get('/dashboard/sensors/{id}', [DashboardHistoryController::class, 'show'])->name('dashboard.sensors.show'); Route::middleware(['auth'])->group(function () { Route::get('/dashboard', [RealtimeController::class, 'index'])->name('dashboard'); Route::get('/get-blynk-token', [RealtimeController::class, 'getBlynkToken'])->name('getBlynkToken'); Route::get('/bacasoil', [RealtimeController::class, 'bacasoil'])->name('bacasoil'); Route::get('/bacapompa', [RealtimeController::class, 'bacapompa'])->name('bacapompa'); Route::get('/bacabuzzer', [RealtimeController::class, 'bacabuzzer'])->name('bacabuzzer'); Route::get('/simpan/{calibrated_moisture}/{relay_state}/{buzzer_state}', [RealtimeController::class, 'simpan']); Route::post('/updateSwitch1', [RealtimeController::class, 'updateSwitch1'])->name('updateSwitch1'); Route::post('/updateSwitch2', [RealtimeController::class, 'updateSwitch2'])->name('updateSwitch2'); Route::post('/update-blynk-data', [RealtimeController::class, 'updateData'])->name('updateBlynkData'); Route::post('/updateBlynkToken', [RealtimeController::class, 'updateBlynkToken'])->name('updateBlynkToken'); Route::post('/getKebunInfo', [RealtimeController::class, 'getKebunInfo'])->name('getKebunInfo'); }); Route::middleware(['auth'])->group(function () { Route::resource('kebun', KebunController::class); Route::get('/kebun', [KebunController::class, 'index'])->name('kebun.index'); // Menampilkan daftar kebun Route::get('/kebun/create', [KebunController::class, 'create'])->name('kebun.create'); Route::post('/kebun', [KebunController::class, 'store'])->name('kebun.store'); Route::get('/kebun/{id}', [KebunController::class, 'show'])->name('kebun.show'); // Menampilkan detail kebun Route::get('/kebun/{id}/edit', [KebunController::class, 'edit'])->name('kebun.edit'); // Menampilkan form edit kebun Route::put('/kebun/{id}', [KebunController::class, 'update'])->name('kebun.update'); // Menyimpan perubahan kebun Route::delete('/kebun/{id}', [KebunController::class, 'destroy'])->name('kebun.destroy'); // Menghapus kebun Route::get('/kebun/modal/{id}/detail', [KebunController::class, 'show'])->name('kebun.modal.detail'); Route::get('/kebun/modal/{id}/edit', [KebunController::class, 'edit'])->name('kebun.modal.edit'); Route::get('/kebun/modal/{id}/delete', [KebunController::class, 'destroy'])->name('kebun.modal.delete'); }); Route::post('/updateBlynkToken', function(Request $request) { $token = $request->input('token'); // Lakukan sesuatu untuk memperbarui nilai token Blynk di database, misalnya dengan menggunakan Eloquent untuk model kebun Kebun::where('id', 1)->update(['blynk_token' => $token]); return response()->json(['message' => 'Token Blynk telah diperbarui']); }); Route::prefix('admin')->middleware(['auth', 'admin'])->name('admin.')->group(function () { Route::get('/dashboard', [AdminController::class, 'dashboard'])->name('dashboard'); Route::get('/dashboard/users', [AdminController::class, 'searchUsers'])->name('searchUsers'); Route::get('/dashboard/users/{userId}/gardens', [AdminController::class, 'listGardens'])->name('listGardens'); Route::post('/dashboard/gardens/{gardenId}/update-token', [AdminController::class, 'updateBlynkToken'])->name('updateBlynkToken'); Route::get('/admin/users/{user}/gardens/search', [AdminController::class, 'searchGardens'])->name('searchGardens'); Route::resource('users', AdminController::class); Route::post('users/{user}/toggle-status', [AdminController::class, 'toggleStatus'])->name('users.toggleStatus'); }); Route::middleware('guest',)->group(function () { Route::get('login', [AuthenticatedSessionController::class, 'create'])->name('login'); // Form login Route::post('login', [AuthenticatedSessionController::class, 'store'])->name('login.store'); // Proses login }); Route::middleware(['auth'])->group(function () { Route::get('/profile/edit', [ProfileController::class, 'edit'])->name('profile.edit'); Route::put('/profile/update', [ProfileController::class, 'update'])->name('profile.update'); });