summaryrefslogtreecommitdiff
path: root/app/services/discussions/resolve_service.rb
blob: 0437195f58833dc2c481f2a5576b68323c7f17f2 (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
module Discussions
  class ResolveService < Discussions::BaseService
    def execute(one_or_more_discussions)
      Array(one_or_more_discussions).each { |discussion| resolve_discussion(discussion) }
    end

    def resolve_discussion(discussion)
      return unless discussion.can_resolve?(current_user)

      discussion.resolve!(current_user)

      MergeRequests::ResolvedDiscussionNotificationService.new(project, current_user).execute(merge_request)
      SystemNoteService.discussion_continued_in_issue(discussion, project, current_user, follow_up_issue) if follow_up_issue
    end

    def merge_request
      params[:merge_request]
    end

    def follow_up_issue
      params[:follow_up_issue]
    end
  end
end