debian-mirror-gitlab/app/graphql/mutations/award_emojis/remove.rb
2019-09-30 21:07:59 +05:30

33 lines
1.1 KiB
Ruby

# frozen_string_literal: true
module Mutations
module AwardEmojis
class Remove < Base
graphql_name 'RemoveAwardEmoji'
def resolve(args)
awardable = authorized_find!(id: args[:awardable_id])
check_object_is_awardable!(awardable)
# TODO this check can be removed once AwardEmoji services are available.
# See https://gitlab.com/gitlab-org/gitlab-ce/issues/63372 and
# https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29782
unless awardable.awarded_emoji?(args[:name], current_user)
raise Gitlab::Graphql::Errors::ResourceNotAvailable,
'You have not awarded emoji of type name to the awardable'
end
# TODO this will be handled by AwardEmoji::DestroyService
# See https://gitlab.com/gitlab-org/gitlab-ce/issues/63372 and
# https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29782
awardable.remove_award_emoji(args[:name], current_user)
{
# Mutation response is always a `nil` award_emoji
errors: []
}
end
end
end
end