Commit f93c4dc0d83dd40452d40447a62cd68a08e24b09
1 parent
38ffb822
Exists in
master
and in
4 other branches
Use notificationService for MR reassigned
Showing
2 changed files
with
19 additions
and
14 deletions
Show diff stats
app/observers/merge_request_observer.rb
| ... | ... | @@ -6,29 +6,20 @@ class MergeRequestObserver < ActiveRecord::Observer |
| 6 | 6 | end |
| 7 | 7 | |
| 8 | 8 | def after_close(merge_request, transition) |
| 9 | - send_reassigned_email(merge_request) if merge_request.is_being_reassigned? | |
| 10 | - | |
| 11 | 9 | Note.create_status_change_note(merge_request, current_user, merge_request.state) |
| 12 | 10 | end |
| 13 | 11 | |
| 14 | 12 | def after_reopen(merge_request, transition) |
| 15 | - send_reassigned_email(merge_request) if merge_request.is_being_reassigned? | |
| 16 | - | |
| 17 | 13 | Note.create_status_change_note(merge_request, current_user, merge_request.state) |
| 18 | 14 | end |
| 19 | 15 | |
| 20 | 16 | def after_update(merge_request) |
| 21 | - send_reassigned_email(merge_request) if merge_request.is_being_reassigned? | |
| 17 | + notification.reassigned_merge_request(merge_request) if merge_request.is_being_reassigned? | |
| 22 | 18 | end |
| 23 | 19 | |
| 24 | 20 | protected |
| 25 | 21 | |
| 26 | - def send_reassigned_email(merge_request) | |
| 27 | - recipients_ids = merge_request.assignee_id_was, merge_request.assignee_id | |
| 28 | - recipients_ids.delete current_user.id | |
| 29 | - | |
| 30 | - recipients_ids.each do |recipient_id| | |
| 31 | - Notify.delay.reassigned_merge_request_email(recipient_id, merge_request.id, merge_request.assignee_id_was) | |
| 32 | - end | |
| 22 | + def notification | |
| 23 | + NotificationService.new | |
| 33 | 24 | end |
| 34 | 25 | end | ... | ... |
app/services/notification_service.rb
| ... | ... | @@ -33,8 +33,8 @@ class NotificationService |
| 33 | 33 | |
| 34 | 34 | # When we reassign an issue we should send next emails: |
| 35 | 35 | # |
| 36 | - # * issue author if his notification level is not Disabled | |
| 37 | - # * issue assignee if his notification level is not Disabled | |
| 36 | + # * issue old assignee if his notification level is not Disabled | |
| 37 | + # * issue new assignee if his notification level is not Disabled | |
| 38 | 38 | # |
| 39 | 39 | def reassigned_issue(issue, current_user) |
| 40 | 40 | recipient_ids = [issue.assignee_id, issue.assignee_id_was].compact.uniq |
| ... | ... | @@ -66,4 +66,18 @@ class NotificationService |
| 66 | 66 | Notify.delay.new_merge_request_email(merge_request.id) |
| 67 | 67 | end |
| 68 | 68 | end |
| 69 | + | |
| 70 | + # When we reassign a merge_request we should send next emails: | |
| 71 | + # | |
| 72 | + # * merge_request old assignee if his notification level is not Disabled | |
| 73 | + # * merge_request assignee if his notification level is not Disabled | |
| 74 | + # | |
| 75 | + def reassigned_merge_request(merge_request, current_user) | |
| 76 | + recipients_ids = merge_request.assignee_id_was, merge_request.assignee_id | |
| 77 | + recipients_ids.delete current_user.id | |
| 78 | + | |
| 79 | + recipients_ids.each do |recipient_id| | |
| 80 | + Notify.delay.reassigned_merge_request_email(recipient_id, merge_request.id, merge_request.assignee_id_was) | |
| 81 | + end | |
| 82 | + end | |
| 69 | 83 | end | ... | ... |