summaryrefslogtreecommitdiff
path: root/app/mailers/emails/reviews.rb
blob: b98fa8aa6c9fa734c503085286bed9f547073d49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# frozen_string_literal: true

module Emails
  module Reviews
    def new_review_email(recipient_id, review_id)
      setup_review_email(review_id, recipient_id)

      mail_answer_thread(@merge_request, review_thread_options(recipient_id))
    end

    private

    def review_thread_options(recipient_id)
      {
        from: sender(@author.id),
        to: User.find(recipient_id).notification_email_for(@merge_request.target_project.group),
        subject: subject("#{@merge_request.title} (#{@merge_request.to_reference})")
      }
    end

    def setup_review_email(review_id, recipient_id)
      review = Review.find_by_id(review_id)

      @notes = review.notes
      @discussions = Discussion.build_discussions(review.discussion_ids, preload_note_diff_file: true)
      @include_diff_discussion_stylesheet = @discussions.values.any? do |discussion|
        discussion.diff_discussion? && discussion.on_text?
      end
      @author = review.author
      @author_name = review.author_name
      @project = review.project
      @merge_request = review.merge_request
      @target_url = project_merge_request_url(@project, @merge_request)
      @sent_notification = SentNotification.record(@merge_request, recipient_id, reply_key)
    end
  end
end