diff --git a/app/services/issues/reopen_service.rb b/app/services/issues/reopen_service.rb index b23d56258a..1e5c398516 100644 --- a/app/services/issues/reopen_service.rb +++ b/app/services/issues/reopen_service.rb @@ -4,6 +4,7 @@ module Issues if issue.reopen event_service.reopen_issue(issue, current_user) create_note(issue) + notification_service.reopen_issue(issue, current_user) execute_hooks(issue, 'reopen') end diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb index 6c14a2abaf..f39b743b03 100644 --- a/app/services/notification_service.rb +++ b/app/services/notification_service.rb @@ -80,6 +80,10 @@ class NotificationService close_resource_email(merge_request, merge_request.target_project, current_user, 'closed_merge_request_email') end + def reopen_issue(issue, current_user) + reopen_resource_email(issue, issue.project, current_user, 'issue_status_changed_email', 'reopened') + end + # When we merge a merge request we should send next emails: # # * merge_request author if their notification level is not Disabled @@ -319,6 +323,16 @@ class NotificationService end end + def reopen_resource_email(target, project, current_user, method, status) + recipients = reject_muted_users([target.author, target.assignee], project) + recipients = recipients.concat(project_watchers(project)).uniq + recipients.delete(current_user) + + recipients.each do |recipient| + mailer.send(method, recipient.id, target.id, status, current_user.id) + end + end + def mailer Notify.delay end