prefix('admin')->name('admin.')->group(function () { Route::get('/dashboard', [AdminController::class, 'index'])->name('dashboard'); Route::delete('/pastes/{slug}', [AdminController::class, 'destroy'])->name('pastes.destroy'); // New route for deleting users from the admin dashboard Route::delete('/users/{user}', [AdminController::class, 'destroyUser'])->name('users.destroy'); }); // ----------------------------------------------------------------------------- // Public Routes // ----------------------------------------------------------------------------- // Homepage is the Create Paste form Route::get('/', [PasteController::class, 'create'])->name('pastes.create'); // Save the paste Route::post('/pastes', [PasteController::class, 'store'])->name('pastes.store'); // Unlock a protected paste Route::post('/pastes/{paste}/unlock', [PasteController::class, 'unlock'])->name('pastes.unlock.store'); // ----------------------------------------------------------------------------- // Authentication Routes // ----------------------------------------------------------------------------- Route::post('/auth/google/verify', [GoogleOneTapController::class, 'verify'])->name('auth.google.verify'); Route::view('/login', 'login')->name('login')->middleware('guest'); // ----------------------------------------------------------------------------- // Authenticated Routes // ----------------------------------------------------------------------------- Route::middleware('auth')->group(function () { Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard'); Route::delete('/pastes/{slug}', [PasteController::class, 'destroy'])->name('pastes.destroy'); Route::post('/logout', [GoogleOneTapController::class, 'logout'])->name('logout'); }); // ----------------------------------------------------------------------------- // Sitemap Route (MUST go above the wildcard) // ----------------------------------------------------------------------------- Route::get('/sitemap.xml', [SitemapController::class, 'index'])->name('sitemap'); // ----------------------------------------------------------------------------- // Wildcard Route (Must go LAST) // ----------------------------------------------------------------------------- // This allows short, clean URLs like: softpaste.com/aB8x9Z Route::get('/{paste}', [PasteController::class, 'show'])->name('pastes.show');