/** * Remove the specified article from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { /* * -------------------------------------------------------------------------- * Delete article activity * -------------------------------------------------------------------------- * Find and destroy then create new instance of Activity and insert delete * article activity, finally redirect to list of articles. */ $article = Article::findOrFail($id); if ($article->delete()) { Activity::create(['contributor_id' => Auth::user()->id, 'activity' => Activity::deleteArticleActivity(Auth::user()->username, $article->title, $article->slug)]); return redirect(route('account.article.index'))->with(['status' => 'warning', 'message' => Lang::get('alert.article.delete', ['title' => $article->title])]); } return redirect()->back()->withErrors(['error' => Lang::get('alert.error.database')]); }
/** * Rate a article between 1 to 5. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function rate(Request $request) { $article_id = $request->input('article_id'); $rate = $request->input('rate'); $ipAddress = $request->ip(); $article = Article::findOrFail($article_id); $isRated = $article->ratings()->whereIp($ipAddress)->count(); if ($isRated) { $rating = Rating::whereArticleId($article_id)->whereIp($ipAddress)->firstOrFail(); $rating->rate = $rate; } else { $rating = new Rating(); $rating->article_id = $request->input('article_id'); $rating->ip = $ipAddress; $rating->rate = $request->input('rate'); } $result = $rating->save(); return response()->json(['request_id' => uniqid(), 'status' => $result ? 'success' : 'failure', 'message' => $result ? round($article->ratings()->avg('rate')) : Lang::get('database.generic'), 'timestamp' => Carbon::now()], $result ? 200 : 500); }
/** * Remove the specified article from storage. * * @param Request $request * @param int $id * @return \Illuminate\Http\Response */ public function destroy(Request $request, $id) { /* * -------------------------------------------------------------------------- * Delete article * -------------------------------------------------------------------------- * Check if selected variable is not empty so user intends to select multiple * rows at once, and prepare the feedback message according the type of * deletion action. */ if (!empty(trim($request->input('selected')))) { $article_ids = explode(',', $request->input('selected')); $delete = Article::whereIn('id', $article_ids)->delete(); $message = Lang::get('alert.article.delete_all', ['count' => $delete]); } else { $article = Article::findOrFail($id); $message = Lang::get('alert.article.delete', ['title' => $article->title]); $delete = $article->delete(); } if ($delete) { return redirect(route('admin.article.index'))->with(['status' => 'warning', 'message' => $message]); } else { return redirect()->back()->withErrors(['error' => Lang::get('alert.error.database')]); } }