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

40 lines
1.1 KiB
Ruby

# frozen_string_literal: true
module Mutations
module AwardEmojis
class Base < BaseMutation
authorize :award_emoji
argument :awardable_id,
GraphQL::ID_TYPE,
required: true,
description: 'The global id of the awardable resource'
argument :name,
GraphQL::STRING_TYPE,
required: true,
description: copy_field_description(Types::AwardEmojis::AwardEmojiType, :name)
field :award_emoji,
Types::AwardEmojis::AwardEmojiType,
null: true,
description: 'The award emoji after mutation'
private
def find_object(id:)
GitlabSchema.object_from_id(id)
end
# Called by mutations methods after performing an authorization check
# of an awardable object.
def check_object_is_awardable!(object)
unless object.is_a?(Awardable) && object.emoji_awardable?
raise Gitlab::Graphql::Errors::ResourceNotAvailable,
'Cannot award emoji to this resource'
end
end
end
end
end