class CandidateController < ApplicationController
  def welcome
  end

  def question
    @status = QuizStatus.new(current_candidate)
    qid = @status.current_question_id

    redirect_to :summary and return if qid.nil?

    @question = current_candidate.fetch_question(qid)
  end

  def update_question
    redirect_to :summary and return if params.key?(:update)
    redirect_to :saved and return if params.key?(:save)
    redirect_to :question
  end

  def summary
    @quiz = current_candidate.my_quiz
    @status = QuizStatus.new(current_candidate)

    redirect_to :question and return unless @status.current_question_id.nil?
  end

  def update_summary
    redirect_to :summary
  end

  def thankyou
    redirect_to root_path if session[:test_id].nil?
    reset_session
  end

  def saved
  end

  def validate
    candidate = Candidate.find_by(test_hash: params['test_id'])

    if candidate.nil?
      reset_session
      redirect_to root_path, alert: "Sorry, incorrect test id"
    else
      session[:test_id] = candidate.test_hash
      redirect_to :question
    end
  end

  def live_coder
    @question = Question.find(params[:question_id])
    @answer = @question.answers.order("RAND()").first.answer
    render layout: false
  end

  private

    def question_params
      params.permit(:save)
    end
end
