where('published_at', '<', now())->latest()->limit(5)->get(); return view('guest.home', ['articles' => $articles, 'showSubscribeForm' => true]); }); Route::get('/test-insert', function () { return view('test-insert'); })->name('test-insert'); Route::get('/all-articles', function () { $all_articles = Article::where('published_at', '<', now())->paginate(25); return view('guest.all-articles', ['all_articles' => $all_articles, 'showSubscribeForm' => true]); })->name('all-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, 'showSubscribeForm' => true]); })->name('article'); Route::get('/writer/login', function () { return view('writer.login'); })->name('login'); Route::post('/subscribe', [ReaderController::class, 'subscribe'])->name('subscribe'); Route::get('/subscribe-success', function() { return view('guest.subscribe-success'); })->name('subscribe-success'); Route::get('/subscribe-fail', function() { return view('guest.subscribe-fail'); })->name('subscribe-fail'); Route::get('/unsubscribe', function(Request $request) { return view('guest.unsubscribe', ['email' => $request->query('email')]); })->name('unsubscribe'); Route::post('/unsubscribe', [ReaderController::class, 'unsubscribe'])->name('unsubscribe-save'); Route::get('/unsubscribe-success', function() { return view('guest.unsubscribe-success'); })->name('unsubscribe-success'); Route::get('/unsubscribe-fail', function() { return view('guest.unsubscribe-fail'); })->name('unsubscribe-fail'); /** * ---------------- * WRITER ENDPOINTS * ---------------- */ 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'); Route::post('writer/save-article', [WriterController::class, 'saveArticle'])->name('save_article'); });