diff options
Diffstat (limited to 'app/services/notification_recipients/builder/new_review.rb')
-rw-r--r-- | app/services/notification_recipients/builder/new_review.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/app/services/notification_recipients/builder/new_review.rb b/app/services/notification_recipients/builder/new_review.rb new file mode 100644 index 00000000000..3b1296f6967 --- /dev/null +++ b/app/services/notification_recipients/builder/new_review.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +module NotificationRecipients + module Builder + class NewReview < Base + attr_reader :review + def initialize(review) + @review = review + end + + def target + review.merge_request + end + + def project + review.project + end + + def group + project.group + end + + def build! + add_participants(review.author) + add_mentions(review.author, target: review) + add_project_watchers + add_custom_notifications + add_subscribed_users + end + + # A new review is a batch of new notes + # therefore new_note subscribers should also + # receive incoming new reviews + def custom_action + :new_note + end + + def acting_user + review.author + end + end + end +end |