skill-assessment-app/app/controllers/admin/vote_controller.rb
2017-03-07 16:35:59 -06:00

46 lines
1.4 KiB
Ruby

# frozen_string_literal: true
module Admin
class VoteController < AdminController
def up
@candidate = Candidate.find_by(test_hash: params[:test_hash])
authorize ReviewerVote.find_by(user_id: current_user.id, candidate_id: @candidate.id)
current_user.cast_yea_on(@candidate)
end
def down
@candidate = Candidate.find_by(test_hash: params[:test_hash])
authorize ReviewerVote.find_by(user_id: current_user.id, candidate_id: @candidate.id)
current_user.cast_nay_on(@candidate)
end
def interview_request
@candidate = Candidate.find_by(test_hash: params[:test_hash])
authorize ReviewerVote.find_by(user_id: current_user.id, candidate_id: @candidate.id)
if interview_params[:review_comments].blank?
refuse_interview_request
else
send_interview_request
end
end
private
def refuse_interview_request
redirect_to admin_result_path(@candidate.test_hash),
flash: { error: "Must provide a comment" }
end
def send_interview_request
current_user.review_candidate(@candidate, interview_params)
RecruiterMailer.candidate_reviewed(@candidate).deliver_later
redirect_to admin_result_path(@candidate.test_hash),
flash: { notice: "Quiz #{interview_params[:review_status]}" }
end
def interview_params
params.permit(:review_status, :review_comments)
end
end
end