public function downvote($id) { \App::setLocale(Auth::user()->language()); $user = Auth::user(); $propositionFactory = new PropositionFactory(); if (Carbon::now()->diffInDays(Carbon::createFromTimestamp(strtotime($propositionFactory->getProposition($id)->deadline())), false) <= 0) { abort(403, trans('messages.unauthorized')); } if ($propositionFactory->getUserVoteStatus($id, $user->userId()) == false) { $propositionFactory->downvote($id, $user->userId(), $user->googleEmail()); return redirect()->route('proposition', $id); } else { abort(403, trans('messages.unauthorized')); } }
public function handle_flags() { $user = Auth::user(); if ($user->role() !== User::ROLE_MODERATOR) { abort(404); } $propositionsFactory = new PropositionFactory(); $viewUser = ['fullName' => $user->firstName() . " " . $user->lastName(), 'firstName' => $user->firstName(), 'lastName' => $user->lastName(), 'contactEmail' => $user->contactEmail(), 'email' => $user->email(), 'avatar' => $user->avatar(), 'belongsToSchool' => $user->belongsToSchool(), 'schoolEmail' => $user->googleEmail(), 'role' => $user->role(), 'propositionsCount' => $propositionsFactory->getPropositionsCountByUser($user->userId())]; $viewPropositions = array(); foreach ($propositionsFactory->getFlaggedPropositionsExeptUsers($user->userId()) as $flag) { $proposition = $propositionsFactory->getProposition($flag->propositionId()); $viewPropositions[$proposition->propositionId()] = ['id' => $proposition->propositionId(), 'propositionSort' => $proposition->propositionSort(), 'propositionLong' => $proposition->propositionLong(), 'proposer' => $proposition->proposerId(), 'propositionCreationDate' => Carbon::createFromTimestamp(strtotime($proposition->date_created()))->diffForHumans(), 'userHasVoted' => $propositionsFactory->getUserVoteStatus($proposition->propositionId(), $user->userId()), 'deadline' => $proposition->deadline(), 'statusId' => $proposition->status(), 'ending_in' => Carbon::now()->diffInDays(Carbon::createFromTimestamp(strtotime($proposition->deadline())), false), 'flagsCount' => $propositionsFactory->getFlagCount($proposition->propositionId()), 'offensiveCount' => $propositionsFactory->getFlagTypeCount($proposition->propositionId(), 1), 'inappropriateCount' => $propositionsFactory->getFlagTypeCount($proposition->propositionId(), 2), 'incomprehensibleCount' => $propositionsFactory->getFlagTypeCount($proposition->propositionId(), 3)]; } return view('moderator.flags', ['fullName' => $user->firstName() . " " . $user->lastName(), 'user' => $viewUser, 'propositions' => $viewPropositions]); }
public function propositions() { $user = Auth::user(); $propositionFactory = new PropositionFactory(); $propositionsCount = $propositionFactory->getPropositionsCountByUser($user->userId()); $viewUser = ['fullName' => $user->firstName() . " " . $user->lastName(), 'firstName' => $user->firstName(), 'lastName' => $user->lastName(), 'contactEmail' => $user->contactEmail(), 'email' => $user->email(), 'avatar' => $user->avatar(), 'belongsToSchool' => $user->belongsToSchool(), 'schoolEmail' => $user->googleEmail(), 'role' => $user->role(), 'propositionsCount' => $propositionsCount]; $propositionFactory = new PropositionFactory(); $userPropositions = $propositionFactory->getPropositionsByUser($user->userId()); $viewPropositions = array(); foreach ($userPropositions as $proposition) { $viewPropositions[$proposition->propositionId()] = ['id' => $proposition->propositionId(), 'propositionSort' => $proposition->propositionSort(), 'propositionLong' => $proposition->propositionLong(), 'propositionCreationDate' => Carbon::createFromTimestamp(strtotime($proposition->date_created()))->diffForHumans(), 'userHasVoted' => $propositionFactory->getUserVoteStatus($proposition->propositionId(), $user->userId()), 'upvotes' => $propositionFactory->getUpvotes($proposition->propositionId()), 'downvotes' => $propositionFactory->getDownvotes($proposition->propositionId()), 'commentsCount' => $propositionFactory->getCommentsCount($proposition->propositionId()), 'deadline' => $proposition->deadline(), 'statusId' => $proposition->status(), 'blockReason' => $proposition->blockReason(), 'ending_in' => Carbon::now()->diffInDays(Carbon::createFromTimestamp(strtotime($proposition->deadline())), false), 'marker' => $propositionFactory->getMarker($proposition->propositionId())]; } return view('account_new.propositions', ['fullName' => $user->firstName() . " " . $user->lastName(), 'user' => $viewUser, 'propositions' => $viewPropositions]); }