validate([ 'email' => ['required', 'email'], 'password' => ['required'], ]); if (Auth::attempt($credentials)) { $request->session()->regenerate(); return redirect()->intended('writer'); } return back()->withErrors([ 'email' => 'The provided credentials do not match our records.', ])->onlyInput('email'); } public function logout(Request $request): RedirectResponse { Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect(route('login')); } public function dashboard(Request $request): View { return view('writer.dashboard'); } public function newArticle(Request $request): View { return view('writer.new-article'); } public function livePreview(Request $request): View { // Upload the file //logger('hey', ['stuff' => request()->all()]); //sleep(2); $header_image_path = $request->headerImage?->storeAs('header-image-previews'); $article_empty = new Article(); $article_empty->markdown_body = $request->get('markdown-body'); $article_empty->convertMarkdownToMarkup(); $article = [ 'title' => $request->title ?? null, 'header_image_url' => $header_image_path ?? null, 'subtitle' => $request->subtitle ?? null, 'author' => [ 'display_name' => auth()->user()->author?->displayName, ], 'published_at' => $request->get('publication-date') ?? null, 'primary_link' => $request->primary_link ?? null, 'secondary_link' => $request->secondary_link ?? null, 'mastodon_handle' => $request->mastodon_handle ?? null, 'body' => $article_empty->body, ]; return view('shared.single-article', ['article' => $article]); } public function saveArticle(Request $request): RedirectResponse { $header_image_path = $request->headerImage?->storeAs('header-image-previews'); $article_empty = new Article(); $article_empty->markdown_body = $request->get('markdown-body'); $article_empty->convertMarkdownToMarkup(); Article::create([ 'title' => $request->title ?? null, 'slug' => $request->slug ?? null, 'author_id' => auth()->user()->id, 'subtitle' => $request->subtitle ?? null, 'body' => $article_empty->body, 'published_at' => $request->get('publication-date') ?? null, 'header_image_url' => $header_image_path ?? null, 'markdown_body' => $request->get('markdown-body'), ]); return redirect(route('dashboard')); } }