refactor(routes): memisahkan routes ke masing masing page, mengubah as menjadi name dan menyesuaikan http method untuk delete

This commit is contained in:
Yoga Pangestu 2025-10-02 11:06:20 +07:00
parent 8c411af7e5
commit c0a14e26a4
4 changed files with 148 additions and 147 deletions

33
routes/pages/auth.php Normal file
View File

@ -0,0 +1,33 @@
<?php
use App\Livewire\Auth\Login as LoginComponent;
use App\Livewire\Auth\Logout as LogoutComponent;
use App\Livewire\Auth\Register as RegisterComponent;
use Illuminate\Foundation\Auth\EmailVerificationRequest;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::middleware('guest')
->prefix('auth')
->group(function () {
Route::get('login', LoginComponent::class)->name('login');
Route::get('register', RegisterComponent::class)->name('register');
});
Route::post('logout', LogoutComponent::class)->name('logout')->middleware('auth');
Route::get('/email/verify', function () {
return view('auth.verify-email');
})->middleware('auth')->name('verification.notice');
Route::get('/email/verify/{id}/{hash}', function (EmailVerificationRequest $request) {
$request->fulfill();
return redirect('/');
})->middleware(['auth', 'signed'])->name('verification.verify');
Route::post('/email/verification-notification', function (Request $request) {
$request->user()->sendEmailVerificationNotification();
return back()->with('message', 'Verification link sent!');
})->middleware(['auth', 'throttle:6,1'])->name('verification.send');

View File

@ -7,7 +7,7 @@
->prefix('customer')
->group(function () {
Route::prefix('dashboard')
->as('customer.dashboard.')
->name('customer.dashboard.')
->group(function () {
Route::get('overview', Overview::class)->name('overview');
});

111
routes/pages/studio.php Normal file
View File

@ -0,0 +1,111 @@
<?php
use App\Livewire\Studio\Catalog\Bottle\Create as BottleCreate;
use App\Livewire\Studio\Catalog\Bottle\Edit as BottleEdit;
use App\Livewire\Studio\Catalog\Bottle\Index as BottleIndex;
use App\Livewire\Studio\Catalog\Brand as BrandComponent;
use App\Livewire\Studio\Catalog\Category as CategoryComponent;
use App\Livewire\Studio\Catalog\Perfume\Create as PerfumeCreate;
use App\Livewire\Studio\Catalog\Perfume\Edit as PerfumeEdit;
use App\Livewire\Studio\Catalog\Perfume\Index as PerfumeIndex;
use App\Livewire\Studio\Catalog\Product\Create as ProductCreate;
use App\Livewire\Studio\Catalog\Product\Edit as ProductEdit;
use App\Livewire\Studio\Catalog\Product\Index as ProductIndex;
use App\Livewire\Studio\Dashboard\Overview as OverviewComponent;
use App\Livewire\Studio\Loyalty\Customer as CustomerComponent;
use App\Livewire\Studio\Loyalty\Tier as TierComponent;
use App\Livewire\Studio\Loyalty\Voucher\Create as VoucherCreate;
use App\Livewire\Studio\Loyalty\Voucher\Edit as VoucherEdit;
use App\Livewire\Studio\Loyalty\Voucher\Index as VoucherIndex;
use App\Livewire\Studio\Master\Outlet\Create as OutletCreate;
use App\Livewire\Studio\Master\Outlet\Edit as OutletEdit;
use App\Livewire\Studio\Master\Outlet\Index as OutletIndex;
use App\Livewire\Studio\Master\User\Create as UserCreate;
use App\Livewire\Studio\Master\User\Edit as UserEdit;
use App\Livewire\Studio\Master\User\Index as UserIndex;
use Illuminate\Support\Facades\Route;
Route::middleware('auth')
->prefix('studio')
->group(function () {
Route::prefix('dashboard')
->name('studio.dashboard.')
->group(function () {
Route::get('overview', OverviewComponent::class)->name('overview');
});
Route::prefix('master')
->name('studio.master.')
->group(function () {
Route::prefix('outlets')->name('outlet.')->group(function () {
Route::get('/', OutletIndex::class)->name('index');
Route::get('/create', OutletCreate::class)->name('create');
Route::get('/{outlet}/edit', OutletEdit::class)->name('edit');
Route::delete('/{outlet}/delete', OutletCreate::class)->name('delete');
});
Route::prefix('users')->name('user.')->group(function () {
Route::get('/', UserIndex::class)->name('index');
Route::get('/create', UserCreate::class)->name('create');
Route::get('/{user}/edit', UserEdit::class)->name('edit');
Route::delete('/{user}/delete', UserCreate::class)->name('delete');
});
});
Route::prefix('loyalty')
->name('studio.loyalty.')
->group(function () {
Route::prefix('tiers')->name('tier.')->group(function () {
Route::get('/', TierComponent::class)->name('index');
Route::delete('/{tier}/delete', TierComponent::class)->name('delete');
});
Route::prefix('customers')->name('customer.')->group(function () {
Route::get('/', CustomerComponent::class)->name('index');
Route::delete('/{customer}/delete', CustomerComponent::class)->name('delete');
});
Route::prefix('vouchers')->name('voucher.')->group(function () {
Route::get('/', VoucherIndex::class)->name('index');
Route::get('/create', VoucherCreate::class)->name('create');
Route::get('/{voucher}/edit', VoucherEdit::class)->name('edit');
Route::delete('/{voucher}/delete', VoucherCreate::class)->name('delete');
});
});
Route::prefix('catalog')
->name('studio.catalog.')
->group(function () {
Route::prefix('categories')->name('category.')->group(function () {
Route::get('/', CategoryComponent::class)->name('index');
Route::delete('/{category}/delete', CategoryComponent::class)->name('delete');
});
Route::prefix('brands')->name('brand.')->group(function () {
Route::get('/', BrandComponent::class)->name('index');
Route::delete('/{brand}/delete', BrandComponent::class)->name('delete');
});
Route::prefix('perfumes')->name('perfume.')->group(function () {
Route::get('/', PerfumeIndex::class)->name('index');
Route::get('/create', PerfumeCreate::class)->name('create');
Route::get('/{perfume}/edit', PerfumeEdit::class)->name('edit');
Route::delete('/{perfume}/delete', PerfumeCreate::class)->name('delete');
});
Route::prefix('products')->name('product.')->group(function () {
Route::get('/', ProductIndex::class)->name('index');
Route::get('/create', ProductCreate::class)->name('create');
Route::get('/{product}/edit', ProductEdit::class)->name('edit');
Route::delete('/{product}/delete', ProductCreate::class)->name('delete');
});
Route::prefix('bottles')->name('bottle.')->group(function () {
Route::get('/', BottleIndex::class)->name('index');
Route::get('/create', BottleCreate::class)->name('create');
Route::get('/{bottle}/edit', BottleEdit::class)->name('edit');
Route::get('/{bottle}/delete', BottleCreate::class)->name('delete');
Route::get('/{bottle}/delete', BottleCreate::class)->name('delete');
});
});
});

View File

@ -1,154 +1,11 @@
<?php
use App\Livewire\Auth\Login;
use App\Livewire\Auth\Logout;
use App\Livewire\Auth\Register;
use App\Livewire\Studio\Catalog\Bottle\Create as BottleCreate;
use App\Livewire\Studio\Catalog\Bottle\Edit as BottleEdit;
use App\Livewire\Studio\Catalog\Bottle\Index as BottleIndex;
use App\Livewire\Studio\Catalog\Brand as BrandComponent;
use App\Livewire\Studio\Catalog\Category as CategoryComponent;
use App\Livewire\Studio\Catalog\Perfume\Create as PerfumeCreate;
use App\Livewire\Studio\Catalog\Perfume\Edit as PerfumeEdit;
use App\Livewire\Studio\Catalog\Perfume\Index as PerfumeIndex;
use App\Livewire\Studio\Catalog\Product\Create as ProductCreate;
use App\Livewire\Studio\Catalog\Product\Edit as ProductEdit;
use App\Livewire\Studio\Catalog\Product\Index as ProductIndex;
use App\Livewire\Studio\Dashboard\Overview;
use App\Livewire\Studio\Loyalty\Customer as CustomerComponent;
use App\Livewire\Studio\Loyalty\Tier as TierComponent;
use App\Livewire\Studio\Loyalty\Voucher\Create as VoucherCreate;
use App\Livewire\Studio\Loyalty\Voucher\Edit as VoucherEdit;
use App\Livewire\Studio\Loyalty\Voucher\Index as VoucherIndex;
use App\Livewire\Studio\Master\Outlet\Create as OutletCreate;
use App\Livewire\Studio\Master\Outlet\Edit as OutletEdit;
use App\Livewire\Studio\Master\Outlet\Index as OutletIndex;
use App\Livewire\Studio\Master\User\Create as UserCreate;
use App\Livewire\Studio\Master\User\Edit as UserEdit;
use App\Livewire\Studio\Master\User\Index as UserIndex;
use Illuminate\Foundation\Auth\EmailVerificationRequest;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
require __DIR__.'/customer.php';
require __DIR__.'/pages/customer.php';
require __DIR__.'/pages/studio.php';
require __DIR__.'/pages/auth.php';
Route::get('/', function () {
return view('welcome');
})->name('homepage');
Route::middleware('guest')
->prefix('auth')
->group(function () {
Route::get('login', Login::class)->name('login');
Route::get('register', Register::class)->name('register');
});
Route::get('logout', Logout::class)->name('logout')->middleware('auth');
Route::get('/email/verify', function () {
return view('auth.verify-email');
})->middleware('auth')->name('verification.notice');
Route::get('/email/verify/{id}/{hash}', function (EmailVerificationRequest $request) {
$request->fulfill();
return redirect('/');
})->middleware(['auth', 'signed'])->name('verification.verify');
Route::post('/email/verification-notification', function (Request $request) {
$request->user()->sendEmailVerificationNotification();
return back()->with('message', 'Verification link sent!');
})->middleware(['auth', 'throttle:6,1'])->name('verification.send');
Route::middleware('auth')
->prefix('studio')
->group(function () {
Route::prefix('dashboard')
->as('studio.dashboard.')
->group(function () {
Route::get('overview', Overview::class)->name('overview');
});
Route::prefix('master')
->as('studio.master.outlet.')
->group(function () {
Route::get('outlets', OutletIndex::class)->name('index');
Route::get('outlets/create', OutletCreate::class)->name('create');
Route::get('outlets/{outlet}/edit', OutletEdit::class)->name('edit');
Route::get('outlets/{outlet}/delete', OutletCreate::class)->name('delete');
});
Route::prefix('master')
->as('studio.master.user.')
->group(function () {
Route::get('users', UserIndex::class)->name('index');
Route::get('users/create', UserCreate::class)->name('create');
Route::get('users/{user}/edit', UserEdit::class)->name('edit');
Route::get('users/{user}/delete', UserCreate::class)->name('delete');
});
Route::prefix('loyalty')
->as('studio.loyalty.tier.')
->group(function () {
Route::get('tiers', TierComponent::class)->name('index');
Route::delete('tiers/{tier}/delete', TierComponent::class)->name('delete');
});
Route::prefix('loyalty')
->as('studio.loyalty.customer.')
->group(function () {
Route::get('customers', CustomerComponent::class)->name('index');
Route::delete('customers/{customer}/delete', CustomerComponent::class)->name('delete');
});
Route::prefix('loyalty')
->as('studio.loyalty.voucher.')
->group(function () {
Route::get('vouchers', VoucherIndex::class)->name('index');
Route::get('vouchers/create', VoucherCreate::class)->name('create');
Route::get('vouchers/{voucher}/edit', VoucherEdit::class)->name('edit');
Route::get('vouchers/{voucher}/delete', VoucherCreate::class)->name('delete');
});
Route::prefix('catalog')
->as('studio.catalog.category.')
->group(function () {
Route::get('categories', CategoryComponent::class)->name('index');
Route::delete('categories/{category}/delete', CategoryComponent::class)->name('delete');
});
Route::prefix('catalog')
->as('studio.catalog.brand.')
->group(function () {
Route::get('brands', BrandComponent::class)->name('index');
Route::delete('brands/{brand}/delete', BrandComponent::class)->name('delete');
});
Route::prefix('catalog')
->as('studio.catalog.perfume.')
->group(function () {
Route::get('perfumes', PerfumeIndex::class)->name('index');
Route::get('perfumes/create', PerfumeCreate::class)->name('create');
Route::get('perfumes/{perfume}/edit', PerfumeEdit::class)->name('edit');
Route::get('perfumes/{perfume}/delete', PerfumeCreate::class)->name('delete');
});
Route::prefix('catalog')
->as('studio.catalog.product.')
->group(function () {
Route::get('products', ProductIndex::class)->name('index');
Route::get('products/create', ProductCreate::class)->name('create');
Route::get('products/{product}/edit', ProductEdit::class)->name('edit');
Route::get('products/{product}/delete', ProductCreate::class)->name('delete');
});
Route::prefix('catalog')
->as('studio.catalog.bottle.')
->group(function () {
Route::get('bottles', BottleIndex::class)->name('index');
Route::get('bottles/create', BottleCreate::class)->name('create');
Route::get('bottles/{bottle}/edit', BottleEdit::class)->name('edit');
Route::get('bottles/{bottle}/delete', BottleCreate::class)->name('delete');
});
});