98 lines
5.4 KiB
PHP
98 lines
5.4 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\HomeController;
|
|
use App\Http\Controllers\ProfileController;
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Http\Controllers\GameController;
|
|
use App\Http\Controllers\ReviewController;
|
|
use App\Http\Controllers\GameListController;
|
|
use App\Http\Controllers\ForumCategoryController;
|
|
use App\Http\Controllers\ForumThreadController;
|
|
use App\Http\Controllers\ForumTopicController;
|
|
use App\Http\Controllers\ForumPostController;
|
|
|
|
//Route::get('/', function () {
|
|
// return view('landing');
|
|
//});
|
|
|
|
Route::get('/', [HomeController::class, 'index']);
|
|
|
|
Route::get('/dashboard', function () {
|
|
return view('dashboard');
|
|
})->middleware(['auth', 'verified'])->name('dashboard');
|
|
|
|
Route::middleware('auth')->group(function () {
|
|
// Authenticated profile routes
|
|
Route::get('/profile', [ProfileController::class, 'show'])->name('profile');
|
|
Route::get('/profile/edit', [ProfileController::class, 'edit'])->name('profile.edit');
|
|
Route::put('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
|
Route::get('/profile/reviews', [ProfileController::class, 'reviews'])->name('profile.reviews');
|
|
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
|
|
|
|
// Review routes
|
|
Route::post('/games/{game:slug}/reviews/store', [ReviewController::class, 'store'])->name('games.reviews.store');
|
|
Route::get('/games/{game:slug}/reviews/create', [ReviewController::class, 'create'])->name('games.reviews.create');
|
|
Route::get('/reviews/{review}', [ReviewController::class, 'show'])->name('reviews.show');
|
|
Route::get('/reviews/{review}/edit', [ReviewController::class, 'edit'])->name('reviews.edit');
|
|
Route::put('/reviews/{review}', [ReviewController::class, 'update'])->name('reviews.update');
|
|
Route::delete('/reviews/{review}', [ReviewController::class, 'destroy'])->name('reviews.destroy');
|
|
});
|
|
|
|
// Public profile routes
|
|
Route::get('/profile/{user:slug}', [ProfileController::class, 'show'])->name('profile.show');
|
|
|
|
Route::get('/games', [App\Http\Controllers\GameController::class, 'index'])->name('games.index');
|
|
Route::get('/games/{game:slug}', [App\Http\Controllers\GameController::class, 'show'])->name('games.show');
|
|
|
|
// Public review routes
|
|
Route::get('/games/{game:slug}/reviews', [App\Http\Controllers\ReviewController::class, 'index'])->name('games.reviews.index');
|
|
|
|
// Game Lists
|
|
Route::middleware('auth')->group(function () {
|
|
Route::resource('lists', GameListController::class);
|
|
Route::post('lists/{list}/games', [GameListController::class, 'addGame'])->name('lists.addGame');
|
|
Route::delete('lists/{list}/games/{game}', [GameListController::class, 'removeGame'])->name('lists.removeGame');
|
|
});
|
|
|
|
// Forum Routes
|
|
Route::prefix('forum')->name('forum.')->group(function () {
|
|
// Public forum routes
|
|
Route::get('/', [ForumCategoryController::class, 'index'])->name('index');
|
|
Route::get('/categories/{category}', [ForumCategoryController::class, 'show'])->name('categories.show');
|
|
Route::get('/threads/{thread}', [ForumThreadController::class, 'show'])->name('threads.show');
|
|
Route::get('/topics/{topic}', [ForumTopicController::class, 'show'])->name('topics.show');
|
|
|
|
// Authenticated forum routes
|
|
Route::middleware('auth')->group(function () {
|
|
// Categories (admin only in a real app)
|
|
Route::get('/categories/create', [ForumCategoryController::class, 'create'])->name('categories.create');
|
|
Route::post('/categories', [ForumCategoryController::class, 'store'])->name('categories.store');
|
|
Route::get('/categories/{category}/edit', [ForumCategoryController::class, 'edit'])->name('categories.edit');
|
|
Route::put('/categories/{category}', [ForumCategoryController::class, 'update'])->name('categories.update');
|
|
Route::delete('/categories/{category}', [ForumCategoryController::class, 'destroy'])->name('categories.destroy');
|
|
|
|
// Threads
|
|
Route::get('/threads/create', [ForumThreadController::class, 'create'])->name('threads.create');
|
|
Route::post('/threads', [ForumThreadController::class, 'store'])->name('threads.store');
|
|
Route::get('/threads/{thread}/edit', [ForumThreadController::class, 'edit'])->name('threads.edit');
|
|
Route::put('/threads/{thread}', [ForumThreadController::class, 'update'])->name('threads.update');
|
|
Route::delete('/threads/{thread}', [ForumThreadController::class, 'destroy'])->name('threads.destroy');
|
|
|
|
// Topics
|
|
Route::get('/topics/create', [ForumTopicController::class, 'create'])->name('topics.create');
|
|
Route::post('/topics', [ForumTopicController::class, 'store'])->name('topics.store');
|
|
Route::get('/topics/{topic}/edit', [ForumTopicController::class, 'edit'])->name('topics.edit');
|
|
Route::put('/topics/{topic}', [ForumTopicController::class, 'update'])->name('topics.update');
|
|
Route::delete('/topics/{topic}', [ForumTopicController::class, 'destroy'])->name('topics.destroy');
|
|
|
|
// Posts
|
|
Route::get('/posts/create', [ForumPostController::class, 'create'])->name('posts.create');
|
|
Route::post('/posts', [ForumPostController::class, 'store'])->name('posts.store');
|
|
Route::get('/posts/{post}/edit', [ForumPostController::class, 'edit'])->name('posts.edit');
|
|
Route::put('/posts/{post}', [ForumPostController::class, 'update'])->name('posts.update');
|
|
Route::delete('/posts/{post}', [ForumPostController::class, 'destroy'])->name('posts.destroy');
|
|
});
|
|
});
|
|
|
|
require __DIR__.'/auth.php';
|