/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * * @return \Illuminate\Http\Response */ public function store(Request $request) { $this->validate($request, ['facebook_id' => 'required|integer|exists:users,facebook_id']); Nomination::create(['facebook_id' => $request->get('facebook_id'), 'user_id' => Auth::user()->id, 'term_id' => nextTerm()->id]); Session::flash('message', 'You successfully nominated a user.'); return redirect('/'); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * * @return \Illuminate\Http\Response */ public function store(Request $request) { $this->validate($request, ['consent' => 'accepted', 'text' => 'required|max:250|min:10']); Candidate::create(['user_id' => Auth::user()->id, 'about' => $request->get('text'), 'term_id' => nextTerm()->id]); Session::flash('message', 'You successfully marked yourself as running.'); return redirect('/'); }
function canVote($checkUser = true) { try { return Carbon\Carbon::now()->between(nextTerm()->starts_at->subDays(7), nextTerm()->starts_at) && (Auth::check() && $checkUser ? Auth::user()->canVote() : true); } catch (Exception $e) { return false; } }
/** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * * @return void */ protected function schedule(Schedule $schedule) { $schedule->call(function () { $term = new Term(); $date = Carbon::now()->addDays(15); $term->starts_at = $date; $term->ends_at = $date->addMonths(3); $term->save(); })->daily()->when(function () { return term()->ends_at->diffInDays() == 15 && nextTerm() === null; }); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * * @return \Illuminate\Http\Response */ public function store(Request $request) { $this->validate($request, ['vote' => 'required|array|vote_count|vote_unique|sane_votes']); $user = $request->user(); if ($user->uuid === null) { $user->update(['uuid' => uuid()]); } foreach ($request->get('vote') as $vote) { Vote::create(['candidate_id' => Candidate::findOrFail($vote)->id, 'user_id' => $user->id, 'term_id' => nextTerm()->id]); } Session::flash('message', 'Your votes were successfully counted.'); return redirect('/'); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * * @return \Illuminate\Http\Response */ public function store(Request $request) { $this->validate($request, ['facebook_id' => 'required|integer|exists:users,facebook_id|not_in:' . env('MAINTAINER_UID', '10153385491939685')]); if (Nomination::where(['facebook_id' => $request->get('facebook_id'), 'term_id' => nextTerm()->id])->count() > 2) { Session::flash('message', 'That user already has enough nominations.'); return redirect('/nominate'); } if (Nomination::where(['facebook_id' => $request->get('facebook_id'), 'term_id' => nextTerm()->id, 'user_id' => Auth::user()->id])->count() != 0) { Session::flash('message', 'You\'ve already nominated that user.'); return redirect('/nominate'); } Nomination::create(['facebook_id' => $request->get('facebook_id'), 'user_id' => Auth::user()->id, 'term_id' => nextTerm()->id]); Session::flash('message', 'You successfully nominated a user.'); return redirect('/'); }
/** * Bootstrap any application services. * * @return void */ public function boot() { Validator::extend('vote_count', function ($attribute, $value, $parameters, $validator) { return count($value) <= env('NUM_ADMINS') && count($value) > 0; }); Validator::extend('vote_unique', function ($attribute, $value, $parameters, $validator) { return Auth::user()->canVote(); }); Validator::extend('sane_votes', function ($attribute, $value, $parameters, $validator) { $can = []; foreach ($value as $candidate) { if (Candidate::findOrFail($candidate)->term_id !== nextTerm()->id || in_array($candidate, $can)) { return false; } $can[] = $candidate; } return true; }); }
public function isRunning() { return (bool) $this->candidates()->where('term_id', nextTerm()->id)->get()->count(); }