Files
jobifygarden/routes/web.php
T

63 lines
3.0 KiB
PHP

<?php
use App\Http\Controllers\Admin\DashboardController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\Web\BlogController;
use App\Http\Controllers\Web\BookmarkController;
use App\Http\Controllers\Web\DashboardController as UserDashboardController;
use App\Http\Controllers\Web\HomeController;
use App\Http\Controllers\Web\JobController;
use App\Http\Controllers\Web\PageController;
use App\Http\Controllers\Web\SitemapController;
use Illuminate\Support\Facades\Route;
// Homepage
Route::get('/', [HomeController::class, 'index'])->name('home');
// Static pages
Route::get('/about', [PageController::class, 'about'])->name('about');
Route::get('/contact', [PageController::class, 'contact'])->name('contact');
Route::get('/privacy', [PageController::class, 'privacy'])->name('privacy');
Route::get('/terms', [PageController::class, 'terms'])->name('terms');
// Job routes
Route::prefix('jobs')->group(function () {
Route::get('/', [JobController::class, 'index'])->name('jobs.index');
Route::get('/remote', [JobController::class, 'remote'])->name('jobs.remote');
Route::get('/category/{slug}', [JobController::class, 'category'])->name('jobs.category');
Route::get('/{job:slug}', [JobController::class, 'show'])->name('jobs.show');
});
// Blog routes
Route::prefix('blog')->name('blog.')->group(function () {
Route::get('/', [BlogController::class, 'index'])->name('index');
Route::get('/{article:slug}', [BlogController::class, 'show'])->name('show');
});
// Sitemap routes
Route::get('/sitemap.xml', [SitemapController::class, 'index'])->name('sitemap');
Route::get('/sitemap-index.xml', [SitemapController::class, 'sitemapIndex'])->name('sitemap.index');
Route::get('/sitemap-main.xml', [SitemapController::class, 'mainSitemap'])->name('sitemap.main');
Route::get('/sitemap-jobs.xml', [SitemapController::class, 'jobsSitemap'])->name('sitemap.jobs');
Route::get('/sitemap-blog.xml', [SitemapController::class, 'blogSitemap'])->name('sitemap.blog');
// Authenticated user routes
Route::middleware('auth')->group(function () {
Route::get('/dashboard', [UserDashboardController::class, 'index'])->name('dashboard');
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
Route::get('/bookmarks', [BookmarkController::class, 'index'])->name('bookmarks');
Route::post('/jobs/{job}/bookmark', [BookmarkController::class, 'toggle'])->name('jobs.bookmark');
});
// Admin routes
Route::prefix('admin')->name('admin.')->middleware(['auth', 'admin'])->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
Route::get('/logs/api', [DashboardController::class, 'apiLogs'])->name('logs.api');
Route::get('/logs/fetch', [DashboardController::class, 'fetchLogs'])->name('logs.fetch');
});
require __DIR__.'/auth.php';