39 lines
843 B
Ruby
39 lines
843 B
Ruby
# frozen_string_literal: true
|
|
class DraftNoteEntity < Grape::Entity
|
|
include RequestAwareEntity
|
|
|
|
expose :id
|
|
expose :author, using: NoteUserEntity
|
|
expose :merge_request_id
|
|
expose :position, if: -> (note, _) { note.on_diff? }
|
|
expose :line_code
|
|
expose :file_identifier_hash
|
|
expose :file_hash
|
|
expose :file_path
|
|
expose :note
|
|
expose :rendered_note, as: :note_html
|
|
expose :references
|
|
expose :discussion_id
|
|
expose :resolve_discussion
|
|
expose :noteable_type
|
|
|
|
expose :current_user do
|
|
expose :can_edit do |note|
|
|
can?(current_user, :admin_note, note)
|
|
end
|
|
|
|
expose :can_award_emoji do |note|
|
|
note.emoji_awardable?
|
|
end
|
|
|
|
expose :can_resolve do |note|
|
|
note.resolvable? && can?(current_user, :resolve_note, note)
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def current_user
|
|
request.current_user
|
|
end
|
|
end
|