<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Test; class TestController extends Controller { public function startTest(Test $test) { if (!$test->startTest(\Auth::user())) { //session flash return redirect('/home'); } return redirect()->action('TestController@showQuestion'); } public function showQuestion() { $question = session('questions')->get(session('question_counter')-1); $options = $question->options->shuffle(); session(['options' => $options]); return view('tests.index', compact('question'), compact('options')); } public function answerQuestion() { $question = session('questions')->get(session('question_counter')-1); $question_id = $question->id; $answer_id = request()->get('answer'); if (!empty(session('answers'))) { $answers = session('answers'); } $answers["$question_id"] = $answer_id; session(['answers' => $answers]); return redirect()->action('TestController@isCorrect'); } public function isCorrect() { $question = session('questions')->get(session('question_counter')-1); if (!$question->isCorrect(session('answers')["$question->id"])) { session(['wrong_answers' => session('wrong_answers')+1]); session(['is_correct' => false]); } else { session(['is_correct' => true]); } return redirect()->action('TestController@hasFailed'); } public function hasFailed() { if (session('test')->hasFailed(session('wrong_answers'))) { //Abort logic return redirect('/home'); } return redirect()->action('TestController@lastQuestion'); } public function lastQuestion() { /*if (session('test')->lastQuestion(session('question_counter'))) { }*/ return redirect()->action('TestController@showAnswer'); } public function showAnswer() { $question = session('questions')->get(session('question_counter')-1); if (session('answers')["$question->id"] == $question->answer_id) { $question_status = "GZ, that was the correct answer!"; } else { $question_status = "Sorry, wrong answer, pal!"; } session(['question_counter' => session('question_counter')+1]); return view('tests.answer'); } }