Commit f93c4dc0d83dd40452d40447a62cd68a08e24b09

Authored by Dmitriy Zaporozhets
1 parent 38ffb822

Use notificationService for MR reassigned

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
... ...