'Berita' ]); } public function create(){ return view('dashboard.news.create', [ 'title' => 'Tambah Berita' ]); } public function store(NewsRequest $request){ $validatedData = $request->validated(); $validatedData['image'] = store_file($validatedData['image'], '/uploads/news', 'public')['randomFileName']; $validatedData['slug'] = Str::slug($validatedData['title']); $validatedData['author_id'] = Auth::id(); $createdNews = News::create($validatedData); if($createdNews){ return redirect()->back()->with('success-status', 'Berhasil menambahkan berita.'); }else{ return redirect()->back()->with('failed-status', 'Gagal menambahkan berita.'); } } public function edit($id){ $news = News::findOrFail(decrypt_id($id)); return view('dashboard.news.edit', [ 'title' => 'Ubah Berita', 'news' => $news ]); } public function update(NewsRequest $request, $id){ $validatedData = $request->validated(); $news = News::findOrFail(decrypt_id($id)); if($request->has('image')){ delete_file('app/public/uploads/news/'.$news->image); $validatedData['image'] = store_file($validatedData['image'], '/uploads/news', 'public')['randomFileName']; }else{ $validatedData['image'] = $news->image; } $validatedData['slug'] = Str::slug($validatedData['title']); $validatedData['author_id'] = Auth::id(); $news = News::findOrFail(decrypt_id($id)); $updatedNews = $news->update($validatedData); if($updatedNews){ return redirect()->back()->with('success-status', 'Berhasil mengubah berita.'); }else{ return redirect()->back()->with('failed-status', 'Gagal mengubah berita.'); } } public function show($id){ $news = News::findOrFail(decrypt_id($id)); return view('dashboard.news.show', [ 'title' => 'Detail Berita', 'news' => $news ]); } public function destroy($id){ try { $news = News::findOrFail(decrypt_id($id)); delete_file('app/public/uploads/news/'.$news->image); $news->delete(); return response()->json(['message' => 'Berhasil menghapus berita.']); } catch (\Exception $e) { return response()->json(['message' => 'Gagal menghapus berita.'], 500); } } }