Undangan/backend/routes/web.php

78 lines
2.9 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AdminAuthController;
use App\Http\Controllers\KategoriController;
use App\Http\Controllers\FiturController;
use App\Http\Controllers\TemplateController;
use App\Http\Controllers\PelangganController;
use App\Http\Controllers\Api\ReviewController;
use App\Models\Review;
use App\Http\Controllers\DashboardController;
// Redirect ke login admin
Route::get('/', function () {
return redirect()->route('admin.login');
});
// Admin Auth
Route::prefix('admin')->name('admin.')->group(function () {
Route::middleware('guest:admin')->group(function () {
Route::get('/login', [AdminAuthController::class, 'showLogin'])->name('login');
Route::post('/login', [AdminAuthController::class, 'login'])->name('login.post');
});
Route::middleware('auth:admin')->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
Route::post('/logout', [AdminAuthController::class, 'logout'])->name('logout');
});
});
// Admin Kategori
Route::prefix('admin')->name('admin.')->group(function () {
Route::resource('kategori', KategoriController::class);
});
// Admin Fitur
Route::prefix('admin')->name('admin.')->group(function () {
Route::resource('fitur', FiturController::class);
});
// Admin Template
Route::prefix('admin')->group(function () {
Route::get('templates', [TemplateController::class, 'index'])->name('templates.index');
Route::post('templates', [TemplateController::class, 'store'])->name('templates.store');
Route::put('templates/{template}', [TemplateController::class, 'update'])->name('templates.update');
Route::delete('templates/{template}', [TemplateController::class, 'destroy'])->name('templates.destroy');
Route::get('templates/kategori/{id}', [TemplateController::class, 'byKategori'])->name('templates.byKategori');
});
// Admin Pelanggan
Route::prefix('admin')->name('admin.')->group(function () {
Route::resource('pelanggan', PelangganController::class)->only([
'index',
'show',
'destroy'
]);
});
// Admin Review
Route::prefix('admin')->name('admin.')->middleware('auth:admin')->group(function () {
Route::get('/ulasan', function () {
$reviews = Review::latest()->get();
return view('admin.reviews.index', compact('reviews'));
})->name('reviews.index');
Route::post('/ulasan', [ReviewController::class, 'store'])->name('reviews.store');
Route::put('/ulasan/{review}', [ReviewController::class, 'update'])->name('reviews.update');
Route::delete('/ulasan/{review}', function (Review $review) {
$review->delete();
return redirect()->route('admin.reviews.index')->with('success', 'Ulasan berhasil dihapus');
})->name('reviews.destroy');
});
// Admin Kategori Fitur
Route::prefix('admin')->name('admin.')->group(function () {
Route::resource('kategori_fitur', \App\Http\Controllers\KategoriFiturController::class);
});