Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2016-08-19 13:58:01 +0300
committerSean McGivern <sean@mcgivern.me.uk>2016-08-19 13:58:01 +0300
commit07f34709fcd2502963037c5f7f7adb8ec32dfc7b (patch)
tree01fb69152a6129f9e4d3dc304dd40c22937cd902 /app/services
parent473db1f9743f6f07b7c3d7fa53170d01662f9c82 (diff)
parent12fe6a6fd733110acc72aa0f5bdaec2b1fa1f358 (diff)
Merge branch 'master' into 'expiration-date-on-memberships'
# Conflicts: # db/schema.rb
Diffstat (limited to 'app/services')
-rw-r--r--app/services/merge_requests/resolved_discussion_notification_service.rb10
-rw-r--r--app/services/notification_service.rb8
-rw-r--r--app/services/system_note_service.rb6
3 files changed, 24 insertions, 0 deletions
diff --git a/app/services/merge_requests/resolved_discussion_notification_service.rb b/app/services/merge_requests/resolved_discussion_notification_service.rb
new file mode 100644
index 00000000000..3a09350c847
--- /dev/null
+++ b/app/services/merge_requests/resolved_discussion_notification_service.rb
@@ -0,0 +1,10 @@
+module MergeRequests
+ class ResolvedDiscussionNotificationService < MergeRequests::BaseService
+ def execute(merge_request)
+ return unless merge_request.discussions_resolved?
+
+ SystemNoteService.resolve_all_discussions(merge_request, project, current_user)
+ notification_service.resolve_all_discussions(merge_request, current_user)
+ end
+ end
+end
diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb
index 2291bc0f127..66a838b3d13 100644
--- a/app/services/notification_service.rb
+++ b/app/services/notification_service.rb
@@ -148,6 +148,14 @@ class NotificationService
)
end
+ def resolve_all_discussions(merge_request, current_user)
+ recipients = build_recipients(merge_request, merge_request.target_project, current_user, action: "resolve_all_discussions")
+
+ recipients.each do |recipient|
+ mailer.resolved_all_discussions_email(recipient.id, merge_request.id, current_user.id).deliver_later
+ end
+ end
+
# Notify new user with email after creation
def new_user(user, token = nil)
# Don't email omniauth created users
diff --git a/app/services/system_note_service.rb b/app/services/system_note_service.rb
index e13dc9265b8..546a8f11330 100644
--- a/app/services/system_note_service.rb
+++ b/app/services/system_note_service.rb
@@ -158,6 +158,12 @@ module SystemNoteService
create_note(noteable: noteable, project: project, author: author, note: body)
end
+ def self.resolve_all_discussions(merge_request, project, author)
+ body = "Resolved all discussions"
+
+ create_note(noteable: merge_request, project: project, author: author, note: body)
+ end
+
# Called when the title of a Noteable is changed
#
# noteable - Noteable object that responds to `title`