summaryrefslogtreecommitdiff
path: root/app/services/notification_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/notification_service.rb')
-rw-r--r--app/services/notification_service.rb38
1 files changed, 20 insertions, 18 deletions
diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb
index f3dc552a8e7..75704e2eb0e 100644
--- a/app/services/notification_service.rb
+++ b/app/services/notification_service.rb
@@ -23,7 +23,7 @@ class NotificationService
# * project team members with notification level higher then Participating
#
def new_issue(issue, current_user)
- new_resource_email(issue, 'new_issue_email')
+ new_resource_email(issue, issue.project, 'new_issue_email')
end
# When we close an issue we should send next emails:
@@ -33,7 +33,7 @@ class NotificationService
# * project team members with notification level higher then Participating
#
def close_issue(issue, current_user)
- close_resource_email(issue, current_user, 'closed_issue_email')
+ close_resource_email(issue, issue.project, current_user, 'closed_issue_email')
end
# When we reassign an issue we should send next emails:
@@ -42,7 +42,7 @@ class NotificationService
# * issue new assignee if his notification level is not Disabled
#
def reassigned_issue(issue, current_user)
- reassign_resource_email(issue, current_user, 'reassigned_issue_email')
+ reassign_resource_email(issue, issue.project, current_user, 'reassigned_issue_email')
end
@@ -51,7 +51,7 @@ class NotificationService
# * mr assignee if his notification level is not Disabled
#
def new_merge_request(merge_request, current_user)
- new_resource_email(merge_request, 'new_merge_request_email')
+ new_resource_email(merge_request, merge_request.target_project, 'new_merge_request_email')
end
# When we reassign a merge_request we should send next emails:
@@ -60,7 +60,7 @@ class NotificationService
# * merge_request assignee if his notification level is not Disabled
#
def reassigned_merge_request(merge_request, current_user)
- reassign_resource_email(merge_request, current_user, 'reassigned_merge_request_email')
+ reassign_resource_email(merge_request, merge_request.target_project, current_user, 'reassigned_merge_request_email')
end
# When we close a merge request we should send next emails:
@@ -70,7 +70,7 @@ class NotificationService
# * project team members with notification level higher then Participating
#
def close_mr(merge_request, current_user)
- close_resource_email(merge_request, current_user, 'closed_merge_request_email')
+ close_resource_email(merge_request, merge_request.target_project, current_user, 'closed_merge_request_email')
end
# When we merge a merge request we should send next emails:
@@ -80,8 +80,10 @@ class NotificationService
# * project team members with notification level higher then Participating
#
def merge_mr(merge_request)
- recipients = reject_muted_users([merge_request.author, merge_request.assignee], merge_request.project)
- recipients = recipients.concat(project_watchers(merge_request.project)).uniq
+ recipients = reject_muted_users([merge_request.author, merge_request.assignee], merge_request.source_project)
+ recipients = recipients.concat(reject_muted_users([merge_request.author, merge_request.assignee], merge_request.target_project))
+ recipients = recipients.concat(project_watchers(merge_request.source_project))
+ recipients = recipients.concat(project_watchers(merge_request.target_project)).uniq
recipients.each do |recipient|
mailer.merged_merge_request_email(recipient.id, merge_request.id)
@@ -102,7 +104,7 @@ class NotificationService
# ignore wall messages
return true unless note.noteable_type.present?
- opts = { noteable_type: note.noteable_type, project_id: note.project_id }
+ opts = {noteable_type: note.noteable_type, project_id: note.project_id}
if note.commit_id.present?
opts.merge!(commit_id: note.commit_id)
@@ -191,14 +193,14 @@ class NotificationService
end
end
- def new_resource_email(target, method)
+ def new_resource_email(target, project, method)
if target.respond_to?(:participants)
recipients = target.participants
else
recipients = []
end
- recipients = reject_muted_users(recipients, target.project)
- recipients = recipients.concat(project_watchers(target.project)).uniq
+ recipients = reject_muted_users(recipients, project)
+ recipients = recipients.concat(project_watchers(project)).uniq
recipients.delete(target.author)
recipients.each do |recipient|
@@ -206,9 +208,9 @@ class NotificationService
end
end
- def close_resource_email(target, current_user, method)
- recipients = reject_muted_users([target.author, target.assignee], target.project)
- recipients = recipients.concat(project_watchers(target.project)).uniq
+ def close_resource_email(target, project, current_user, method)
+ recipients = reject_muted_users([target.author, target.assignee], project)
+ recipients = recipients.concat(project_watchers(project)).uniq
recipients.delete(current_user)
recipients.each do |recipient|
@@ -216,14 +218,14 @@ class NotificationService
end
end
- def reassign_resource_email(target, current_user, method)
+ def reassign_resource_email(target, project, current_user, method)
recipients = User.where(id: [target.assignee_id, target.assignee_id_was])
# Add watchers to email list
- recipients = recipients.concat(project_watchers(target.project))
+ recipients = recipients.concat(project_watchers(project))
# reject users with disabled notifications
- recipients = reject_muted_users(recipients, target.project)
+ recipients = reject_muted_users(recipients, project)
# Reject me from recipients if I reassign an item
recipients.delete(current_user)