TKK_E32211375/website/monitoring-cabai/routes/web.php

134 lines
7.7 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\RealtimeController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\LoginController;
use App\Http\Controllers\RegisterController;
use App\Http\Controllers\DashboardHistoryController;
use App\Http\Controllers\KebunController;
use App\Http\Controllers\AdminController;
use App\Http\Controllers\CaptchaController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\Auth\AuthenticatedSessionController;
use Illuminate\Foundation\Auth\EmailVerificationRequest;
use App\Http\Controllers\VerificationController;
use Illuminate\Http\Request;
use App\Models\Kebun;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/
Route::get('/', [HomeController::class, 'index']);
Route::controller(LoginController::class)->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');
});