skill-assessment-app/app/controllers/admin/vote_controller.rb

46 lines
1.4 KiB
Ruby
Raw Permalink Normal View History

2016-11-19 16:34:48 -06:00
# frozen_string_literal: true
module Admin
class VoteController < AdminController
def up
@candidate = Candidate.find_by(test_hash: params[:test_hash])
2016-11-20 13:07:53 -06:00
authorize ReviewerVote.find_by(user_id: current_user.id, candidate_id: @candidate.id)
2016-11-19 16:34:48 -06:00
current_user.cast_yea_on(@candidate)
end
def down
@candidate = Candidate.find_by(test_hash: params[:test_hash])
2016-11-20 13:07:53 -06:00
authorize ReviewerVote.find_by(user_id: current_user.id, candidate_id: @candidate.id)
2016-11-19 16:34:48 -06:00
current_user.cast_nay_on(@candidate)
end
def interview_request
2016-11-19 16:34:48 -06:00
@candidate = Candidate.find_by(test_hash: params[:test_hash])
2016-11-20 13:07:53 -06:00
authorize ReviewerVote.find_by(user_id: current_user.id, candidate_id: @candidate.id)
2016-11-19 16:34:48 -06:00
2017-03-07 16:35:59 -06:00
if interview_params[:review_comments].blank?
refuse_interview_request
else
send_interview_request
end
2016-11-19 16:34:48 -06:00
end
private
2016-11-19 16:34:48 -06:00
2017-03-07 16:35:59 -06:00
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
2016-11-19 16:34:48 -06:00
end
end