some progress
This commit is contained in:
+61
-1
@@ -4,11 +4,71 @@ use Illuminate\Support\Facades\Route;
|
||||
use App\Http\Controllers\CategoryController;
|
||||
use App\Http\Controllers\BookController;
|
||||
use App\Http\Controllers\SummaryController;
|
||||
use App\Http\Controllers\ReadlistController;
|
||||
use App\Http\Controllers\StaticPageController;
|
||||
use App\Http\Controllers\ContactController;
|
||||
use App\Http\Controllers\SummaryReportController;
|
||||
use App\Http\Controllers\SummaryRequestController;
|
||||
use App\Http\Controllers\SummaryReviewController;
|
||||
use App\Http\Controllers\SitemapController;
|
||||
use App\Models\Book;
|
||||
|
||||
Route::get('/', function () {
|
||||
return view('welcome');
|
||||
$latestBooks = Book::with(['category', 'authors', 'summary'])
|
||||
->orderBy('created_at', 'desc')
|
||||
->limit(6)
|
||||
->get();
|
||||
return view('welcome', compact('latestBooks'));
|
||||
});
|
||||
|
||||
// Static pages
|
||||
Route::get('/about', [StaticPageController::class, 'about'])->name('about');
|
||||
Route::get('/privacy', [StaticPageController::class, 'privacy'])->name('privacy');
|
||||
Route::get('/terms', [StaticPageController::class, 'terms'])->name('terms');
|
||||
|
||||
// Contact
|
||||
Route::get('/contact', [ContactController::class, 'show'])->name('contact.show');
|
||||
Route::post('/contact', [ContactController::class, 'send'])->name('contact.send');
|
||||
|
||||
// Bind the {book} route parameter to resolve by slug or numeric ID (backward compatible)
|
||||
Route::bind('book', function ($value) {
|
||||
return App\Models\Book::where('slug', $value)
|
||||
->orWhere(function ($q) use ($value) {
|
||||
if (is_numeric($value)) {
|
||||
$q->where('id', (int) $value);
|
||||
}
|
||||
})
|
||||
->firstOrFail();
|
||||
});
|
||||
|
||||
Route::resource('categories', CategoryController::class);
|
||||
Route::resource('books', BookController::class);
|
||||
Route::resource('summaries', SummaryController::class);
|
||||
|
||||
// Readlist + Reports + Requests routes
|
||||
Route::middleware('auth')->group(function () {
|
||||
Route::get('/readlist', [ReadlistController::class, 'index'])->name('readlist.index');
|
||||
Route::post('/readlist/{book}', [ReadlistController::class, 'store'])->name('readlist.store');
|
||||
Route::delete('/readlist/{book}', [ReadlistController::class, 'destroy'])->name('readlist.destroy');
|
||||
|
||||
// Summary reports
|
||||
Route::post('/books/{book}/report', [SummaryReportController::class, 'store'])->name('summary-reports.store');
|
||||
|
||||
// Summary requests
|
||||
Route::get('/requests', [SummaryRequestController::class, 'index'])->name('requests.index');
|
||||
Route::get('/requests/create', [SummaryRequestController::class, 'create'])->name('requests.create');
|
||||
Route::post('/requests', [SummaryRequestController::class, 'store'])->name('requests.store');
|
||||
|
||||
// Summary reviews
|
||||
Route::post('/books/{book}/reviews', [SummaryReviewController::class, 'store'])->name('reviews.store');
|
||||
Route::delete('/reviews/{review}', [SummaryReviewController::class, 'destroy'])->name('reviews.destroy');
|
||||
});
|
||||
|
||||
Auth::routes();
|
||||
|
||||
// Dashboard route (alias for /home)
|
||||
Route::get('/dashboard', [App\Http\Controllers\HomeController::class, 'index'])->name('dashboard');
|
||||
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
|
||||
|
||||
// Sitemap
|
||||
Route::get('/sitemap.xml', [SitemapController::class, 'index'])->name('sitemap');
|
||||
|
||||
Reference in New Issue
Block a user