From f93c4dc0d83dd40452d40447a62cd68a08e24b09 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Tue, 26 Mar 2013 17:23:28 +0200 Subject: [PATCH] Use notificationService for MR reassigned --- app/observers/merge_request_observer.rb | 15 +++------------ app/services/notification_service.rb | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/app/observers/merge_request_observer.rb b/app/observers/merge_request_observer.rb index 355f7848d15..64585570362 100644 --- a/app/observers/merge_request_observer.rb +++ b/app/observers/merge_request_observer.rb @@ -6,29 +6,20 @@ class MergeRequestObserver < ActiveRecord::Observer end def after_close(merge_request, transition) - send_reassigned_email(merge_request) if merge_request.is_being_reassigned? - Note.create_status_change_note(merge_request, current_user, merge_request.state) end def after_reopen(merge_request, transition) - send_reassigned_email(merge_request) if merge_request.is_being_reassigned? - Note.create_status_change_note(merge_request, current_user, merge_request.state) end def after_update(merge_request) - send_reassigned_email(merge_request) if merge_request.is_being_reassigned? + notification.reassigned_merge_request(merge_request) if merge_request.is_being_reassigned? end protected - def send_reassigned_email(merge_request) - recipients_ids = merge_request.assignee_id_was, merge_request.assignee_id - recipients_ids.delete current_user.id - - recipients_ids.each do |recipient_id| - Notify.delay.reassigned_merge_request_email(recipient_id, merge_request.id, merge_request.assignee_id_was) - end + def notification + NotificationService.new end end diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb index 7e7a36f3e4d..873fc297d77 100644 --- a/app/services/notification_service.rb +++ b/app/services/notification_service.rb @@ -33,8 +33,8 @@ class NotificationService # When we reassign an issue we should send next emails: # - # * issue author if his notification level is not Disabled - # * issue assignee if his notification level is not Disabled + # * issue old assignee if his notification level is not Disabled + # * issue new assignee if his notification level is not Disabled # def reassigned_issue(issue, current_user) recipient_ids = [issue.assignee_id, issue.assignee_id_was].compact.uniq @@ -66,4 +66,18 @@ class NotificationService Notify.delay.new_merge_request_email(merge_request.id) end end + + # When we reassign a merge_request we should send next emails: + # + # * merge_request old assignee if his notification level is not Disabled + # * merge_request assignee if his notification level is not Disabled + # + def reassigned_merge_request(merge_request, current_user) + recipients_ids = merge_request.assignee_id_was, merge_request.assignee_id + recipients_ids.delete current_user.id + + recipients_ids.each do |recipient_id| + Notify.delay.reassigned_merge_request_email(recipient_id, merge_request.id, merge_request.assignee_id_was) + end + end end