From 2e7abbd66c1e68eaf6cd227ce7e26e2d9a3d4180 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 15 Jan 2014 14:03:52 +0200 Subject: [PATCH] Move repo rename email to notification service Signed-off-by: Dmitriy Zaporozhets --- app/models/project.rb | 4 +--- app/services/notification_service.rb | 9 ++++++++ spec/services/notification_service_spec.rb | 25 ++++++++++++++++++++++ 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/app/models/project.rb b/app/models/project.rb index a55f7a65b0b..f322b5a2e25 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -270,9 +270,7 @@ class Project < ActiveRecord::Base end def send_move_instructions - team.members.each do |user| - Notify.delay.project_was_moved_email(self.id, user.id) - end + NotificationService.new.project_was_moved(self) end def owner diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb index eb42cac3f83..ebbb556b63c 100644 --- a/app/services/notification_service.rb +++ b/app/services/notification_service.rb @@ -157,6 +157,15 @@ class NotificationService mailer.group_access_granted_email(users_group.id) end + def project_was_moved(project) + recipients = project.team.members + recipients = reject_muted_users(recipients, project) + + recipients.each do |recipient| + mailer.project_was_moved_email(project.id, recipient.id) + end + end + protected # Get project users with WATCH notification level diff --git a/spec/services/notification_service_spec.rb b/spec/services/notification_service_spec.rb index a112835d4d0..09a5debe1dc 100644 --- a/spec/services/notification_service_spec.rb +++ b/spec/services/notification_service_spec.rb @@ -233,6 +233,31 @@ describe NotificationService do end end + describe 'Projects' do + let(:project) { create :project } + + before do + build_team(project) + end + + describe :project_was_moved do + it do + should_email(@u_watcher.id) + should_email(@u_participating.id) + should_not_email(@u_disabled.id) + notification.project_was_moved(project) + end + + def should_email(user_id) + Notify.should_receive(:project_was_moved_email).with(project.id, user_id) + end + + def should_not_email(user_id) + Notify.should_not_receive(:project_was_moved_email).with(project.id, user_id) + end + end + end + def build_team(project) @u_watcher = create(:user, notification_level: Notification::N_WATCH) @u_participating = create(:user, notification_level: Notification::N_PARTICIPATING)