/** * The content vote * * @param string $contentId * @param string $voteType * @param string $route * * @return Response */ public function getVote($contentId, $voteType, $route) { $Content = Content::findOrFail($contentId); $ContentVote = (new ContentVote())->where(['entity_Id' => $contentId, 'user_id' => Auth::user()->id])->first(); // if ($voteType === 'vote_up') { if ($ContentVote) { if ($ContentVote->value !== ContentVote::VALUE_UP) { $ContentVote->value = ContentVote::VALUE_UP; $ret = $ContentVote->save(); event(new \App\Events\ContentWasVote($Content, 'vote_up_changed')); } } else { $ContentVote = new ContentVote(); $ContentVote->user_id = Auth::user()->id; $ContentVote->entity_id = $contentId; $ContentVote->value = ContentVote::VALUE_UP; $ret = $ContentVote->save(); event(new \App\Events\ContentWasVote($Content, 'vote_up')); } // } else { if ($voteType === 'vote_up_cancel') { $ret = $ContentVote->delete(); event(new \App\Events\ContentWasVote($Content, 'vote_up_cancel')); // } else { if ($voteType === 'vote_down') { if ($ContentVote) { if ($ContentVote->value !== ContentVote::VALUE_DOWN) { $ContentVote->value = ContentVote::VALUE_DOWN; $ret = $ContentVote->save(); event(new \App\Events\ContentWasVote($Content, 'vote_down_changed')); } } else { $ContentVote = new ContentVote(); $ContentVote->user_id = Auth::user()->id; $ContentVote->entity_id = $contentId; $ContentVote->value = ContentVote::VALUE_DOWN; $ret = $ContentVote->save(); event(new \App\Events\ContentWasVote($Content, 'vote_down')); } // } else { if ($voteType === 'vote_down_cancel') { $ret = $ContentVote->delete(); event(new \App\Events\ContentWasVote($Content, 'vote_down_cancel')); } } } } if (isset($ret) && $ret) { Flash::success(trans('app.Successful operation')); return redirect()->route($route, ['id' => $contentId]); } else { Flash::error(trans('app.Operation failed')); return redirect()->route($route, ['id' => $contentId]); } }
/** * */ public function myVote() { return ContentVote::where(['entity_id' => $this->id, 'user_id' => Auth::user()->id])->first(); }