From 82563438518630873008e8a495bad97077514248 Mon Sep 17 00:00:00 2001 From: Mark Moser Date: Thu, 9 Feb 2017 15:38:38 -0600 Subject: [PATCH] notify manager email --- app/mailers/reviewer_mailer.rb | 7 +++++++ app/models/candidate.rb | 7 +++++++ test/mailers/previews/reviewer_mailer_preview.rb | 4 ++++ test/mailers/reviewer_mailer_test.rb | 9 +++++++++ 4 files changed, 27 insertions(+) diff --git a/app/mailers/reviewer_mailer.rb b/app/mailers/reviewer_mailer.rb index 7b467b4..3955ef9 100644 --- a/app/mailers/reviewer_mailer.rb +++ b/app/mailers/reviewer_mailer.rb @@ -12,4 +12,11 @@ class ReviewerMailer < ApplicationMailer mail to: reminder.email, subject: "Review Reminder" end + + def notify_manager candidate_id + @candidate = Candidate.find_by(id: candidate_id) + @manager = @candidate.manager + + mail to: @manager.email, subject: "Voting Complete" + end end diff --git a/app/models/candidate.rb b/app/models/candidate.rb index 5d4df2b..7d5b287 100644 --- a/app/models/candidate.rb +++ b/app/models/candidate.rb @@ -35,6 +35,13 @@ class Candidate < ApplicationRecord end end + def manager + manager_votes = votes.joins(:user).where("users.role = 'manager'") + return nil if manager_votes.empty? + + manager_votes.first.user + end + def submitted_answers answers.where(submitted: true) end diff --git a/test/mailers/previews/reviewer_mailer_preview.rb b/test/mailers/previews/reviewer_mailer_preview.rb index bc7f97e..1f67524 100644 --- a/test/mailers/previews/reviewer_mailer_preview.rb +++ b/test/mailers/previews/reviewer_mailer_preview.rb @@ -10,4 +10,8 @@ class ReviewerMailerPreview < ActionMailer::Preview reminder = reminders.reminders.first ReviewerMailer.reminder reminder end + + def notify_manager + ReviewerMailer.notify_manager Candidate.find_by(test_hash: 'OvP0ZqGKwJ0').id # Dawn + end end diff --git a/test/mailers/reviewer_mailer_test.rb b/test/mailers/reviewer_mailer_test.rb index f02c068..aa2e04f 100644 --- a/test/mailers/reviewer_mailer_test.rb +++ b/test/mailers/reviewer_mailer_test.rb @@ -21,4 +21,13 @@ class ReviewerMailerTest < ActionMailer::TestCase assert_equal [ENV["default_mail_from"]], mail.from assert_match reminder.test_hash, mail.body.encoded end + + test "notify_manager" do + candidate = candidates(:richard) + mail = ReviewerMailer.notify_manager candidate.id + assert_match "Voting Complete", mail.subject + assert_equal [candidate.manager.email], mail.to + assert_equal [ENV["default_mail_from"]], mail.from + assert_match candidate.test_hash, mail.body.encoded + end end