1# frozen_string_literal: true
2
3module IssueLinks
4  class DestroyService < IssuableLinks::DestroyService
5    private
6
7    def source
8      @source ||= link.source
9    end
10
11    def target
12      @target ||= link.target
13    end
14
15    def permission_to_remove_relation?
16      can?(current_user, :admin_issue_link, source) && can?(current_user, :admin_issue_link, target)
17    end
18
19    def create_notes
20      SystemNoteService.unrelate_issue(source, target, current_user)
21      SystemNoteService.unrelate_issue(target, source, current_user)
22    end
23
24    def track_event
25      track_incident_action(current_user, target, :incident_unrelate)
26    end
27  end
28end
29