/**
  * 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('/');
 }
Example #2
0
 /**
  * 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('/');
 }
Example #3
0
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;
    }
}
Example #4
0
 /**
  * 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;
     });
 }
Example #5
0
 /**
  * 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('/');
 }
Example #7
0
 /**
  * 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;
     });
 }
Example #8
0
 public function isRunning()
 {
     return (bool) $this->candidates()->where('term_id', nextTerm()->id)->get()->count();
 }