public function scoreCriteria(ScoreRequest $request) { // Check if current user is allowed to score things $this->authorize('score-application'); $input = $request->all(); $application = Application::find($input['application_id']); $criteria = Criteria::find($input['criteria_id']); // Make sure the application hasn't been finalized if (!in_array($application->judge_status, ['new', 'ready'])) { $request->session()->flash('error', 'This application has already been finalized.'); return redirect('/applications/' . $application->id . '/review'); } // Make sure this user hasn't already submitted their scores $judged = Judged::where(['application_id' => $application->id, 'user_id' => Auth::user()->id])->get()->first(); if (!empty($judged)) { $request->session()->flash('error', 'You have already judged this application!'); return redirect('/applications'); } // Check if a score already exists for this criteria $score = Score::firstOrNew(['application_id' => $application->id, 'criteria_id' => $criteria->id, 'user_id' => Auth::user()->id]); // Add submitted information $score->application_id = $application->id; $score->criteria_id = $criteria->id; $score->user_id = Auth::user()->id; $score->score = $input['score']; $score->answer = $input['answer']; $score->save(); $request->session()->flash('success', 'Your score has been saved.'); return redirect('/applications/' . $application->id . '/review'); }
/** * Store a newly created resource in storage. * * @param ScoreRequest $request * @return Response */ public function store(ScoreRequest $request) { $data = $request->all(); if (empty($data['twitter'])) { $data['twitter'] = null; } Score::create($data); Session::flash("flash_message", "User has been added"); return $this->goHome(); }