123456789101112131415161718192021222324252627282930313233 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- module Gql::Mutations
- class Link::Remove < BaseMutation
- include Gql::Concerns::HandlesPossibleObjects
- description 'Remove link between objects'
- argument :input, Gql::Types::Input::LinkInputType, required: true, description: 'The link data'
- field :success, Boolean, description: 'Was the mutation successful?'
- possible_objects ::Ticket, ::KnowledgeBase::Answer::Translation
- def resolve(input:)
- source = fetch_object(input.source_id)
- target = fetch_object(input.target_id, permission: :update?)
- type = input.type
- ::Link.remove(
- link_type: type,
- link_object_source: source.class.name,
- link_object_source_value: source.id,
- link_object_target: target.class.name,
- link_object_target_value: target.id
- )
- {
- success: true
- }
- end
- end
- end
|