word-salad/routes/web.php

56 lines
1.9 KiB
PHP
Raw Normal View History

2024-02-04 23:36:46 +00:00
<?php
use App\Http\Controllers\WriterController;
use App\Models\Article;
2024-02-04 23:36:46 +00:00
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/
Route::get('/', function () {
$articles = Article::latest()->limit(10)->get();
return view('guest.home', ['articles' => $articles]);
2024-02-04 23:36:46 +00:00
});
Route::get('/test-insert', function () {
return view('test-insert');
})->name('test-insert');
Route::get('/recent-articles', function () {
$all_articles = Article::where('published_at', '<', now())->limit(10)->get();
return view('guest.all-articles', ['all_articles' => $all_articles]);
})->name('recent-articles');
Route::get('/post/{article_slug}', function ($article_slug) {
$active_article = Article::with('author')
->where('published_at', '<', now())
->where('slug', $article_slug)
->first();
if(empty($active_article)) {
return abort(404);
}
return view('guest.article', ['article' => $active_article]);
})->name('article');
Route::get('/writer/login', function () {
return view('writer.login');
})->name('login');
Route::post('/writer/authenticate', [WriterController::class, 'authenticate'])->name('authenticate');
Route::middleware('auth')->group(function () {
Route::get('/writer', [WriterController::class, 'dashboard'])->name('dashboard');
Route::post('/logout', [WriterController::class, 'logout'])->name('logout');
Route::get('writer/new-article', [WriterController::class, 'newArticle'])->name('new_article');
Route::post('writer/live-preview', [WriterController::class, 'livePreview'])->name('live_preview');
});