1# frozen_string_literal: true 2 3module IssuableLinks 4 class DestroyService < BaseService 5 include IncidentManagement::UsageData 6 7 attr_reader :link, :current_user 8 9 def initialize(link, user) 10 @link = link 11 @current_user = user 12 end 13 14 def execute 15 return error(not_found_message, 404) unless permission_to_remove_relation? 16 17 remove_relation 18 after_destroy 19 20 success(message: 'Relation was removed') 21 end 22 23 private 24 25 def after_destroy 26 create_notes 27 track_event 28 end 29 30 def remove_relation 31 link.destroy! 32 end 33 34 def not_found_message 35 'No Issue Link found' 36 end 37 end 38end 39