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
|
# frozen_string_literal: true
module Mutations
module BranchRules
class Delete < BaseMutation
graphql_name 'BranchRuleDelete'
authorize :destroy_branch_rule
argument :id, ::Types::GlobalIDType[::Projects::BranchRule],
required: true,
description: 'Global ID of the branch rule to destroy.'
field :branch_rule,
::Types::Projects::BranchRuleType,
null: true,
description: 'Branch rule after mutation.'
def resolve(id:)
branch_rule = authorized_find!(id: id)
response = ::BranchRules::DestroyService.new(branch_rule, current_user).execute
{ branch_rule: (branch_rule if response.error?), errors: response.errors }
rescue Gitlab::Access::AccessDeniedError
raise_resource_not_available_error!
end
end
end
end
|