/** * Like Post Request handler for Code War Questions * * @param $war_id * @param Request $request * @return mixed */ public function likeCWQ($war_id, Request $request) { //Find Answer with Current Id; $question = $this->codeWarQuestion->findOrFail($war_id); if (!$question->likes()->where('user_id', $request->user()->id)->get()->isEmpty()) { $question->likes()->where('user_id', $request->user()->id)->first()->delete(); return back()->withNotification('Success! You unliked ' . $question->title); } $question->likes()->create(['user_id' => $request->user()->id]); return back()->withNotification('Success! You liked ' . $question->title); }
public function bestanswer(Request $request, $id) { $question = $this->question->findOrFail($id); $answer = $this->answer->findOrFail($request->best_answer_id); if ($answer->code_war_question_id != $question->id) { return back()->withNotification("Error! Intrusion Detected and Blocked."); } if ($request->user()->can('edit', $question)) { $question->fill($request->only('best_answer_id'))->save(); return back()->withNotification("Success! Answer set as Best. Will be visible once this War Ends."); } return back()->withNotification("Error! Something is not right)"); }
/** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { $question = \App\CodeWarQuestion::findOrFail($this->code_war_question_id); /** * User already submitted an Answer to this War */ if (!is_null($question->answers()->where('user_id', $this->user()->id)->first())) { return false; } if ($question->isOpen()) { return true; } return false; }