public function getAcceptanswer($aID, $qID, $uID)
 {
     //return $aID. ' '. $qID;
     $answerToAccept = Answer::find($aID);
     $answerToAccept->status = 'accepted';
     $answerToAccept->save();
     $questionToUpdate = Question::find($qID);
     $questionToUpdate->status = 'solved';
     $questionToUpdate->save();
     $userToUpdate = User::find($uID);
     $reputation = $userToUpdate->reputation;
     $userToUpdate->reputation = $reputation + 15;
     $userToUpdate->save();
     $answerReputation = new Areputation();
     $answerReputation->user_id = $uID;
     $answerReputation->answer_id = $aID;
     $answerReputation->points = "+15";
     $answerReputation->action = "accept";
     $answerReputation->save();
     $authReputation = new Areputation();
     $authReputation->user_id = Auth::user()->id;
     $authReputation->answer_id = $aID;
     $authReputation->points = "+2";
     $authReputation->action = "accept";
     $authReputation->save();
     $userReputation = User::find(Auth::user()->id);
     $rep = $userReputation->reputation;
     $userReputation->reputation = $rep + 2;
     $userReputation->save();
     return Redirect::back();
 }
Example #2
0
 public function getDownvoteanswer($id, $uID)
 {
     if (Auth::check() == NULL) {
         return Redirect::back()->with('alertError', "you have to be logged in to perform this action.");
     }
     $data['answer'] = Answer::find($id);
     //return $data['answer']->user_id . '==' . Auth::user()->id;
     if ($data['answer']->user_id == Auth::user()->id) {
         return Redirect::back()->with('alertError', "You can not downvote your own answer.");
     }
     $hasUserVoted = Avote::where('user_id', '=', User::find(Auth::user()->id)->id)->where('answer_id', '=', $id)->count();
     if ($hasUserVoted == 0) {
         $reputationTest = User::find(Auth::user()->id);
         if ($reputationTest->reputation < 125) {
             return Redirect::back()->with('alertError', "You need 125 reputation to downvote an answer.");
         } else {
             //return $reputationTest;
             $vote = new Avote();
             $vote->user_id = User::find(Auth::user()->id)->id;
             $vote->answer_id = $id;
             $vote->save();
             /*-----------------------------------------------*/
             $userToUpdate = User::find($uID);
             $reputation = $userToUpdate->reputation;
             $reputation -= 2;
             //$userToUpdate->reputation = $reputation - 2;
             if ($reputation < 1) {
                 $userToUpdate->reputation = 1;
             } else {
                 $userToUpdate->reputation = $reputation;
             }
             $userToUpdate->save();
             /*-----------------------------------------------*/
             /*-----------------------------------------------*/
             $authUser = $reputationTest->reputation;
             $authUser -= 1;
             if ($authUser < 1) {
                 $reputationTest->reputation = 1;
             } else {
                 $reputationTest->reputation = $authUser;
             }
             $reputationTest->save();
             /*-----------------------------------------------*/
             /*-----------------------------------------------*/
             $answerReputation = new Areputation();
             $answerReputation->user_id = $uID;
             $answerReputation->answer_id = $id;
             $answerReputation->points = "-2";
             $answerReputation->action = "downvote";
             $answerReputation->save();
             /*----------------------------------------------*/
             /*-----------------------------------------------*/
             $authReputation = new Areputation();
             $authReputation->user_id = Auth::user()->id;
             $authReputation->answer_id = $id;
             $authReputation->points = "-2";
             $authReputation->action = "downvote";
             $authReputation->save();
             /*----------------------------------------------*/
             $answerToDownVote = Answer::find($id);
             $votes = $answerToDownVote->votes;
             $answerToDownVote->votes = $votes - 1;
             $answerToDownVote->save();
             return Redirect::back();
         }
     } else {
         return Redirect::back()->with('alertError', "you have already voted this answer.");
     }
 }