summaryrefslogtreecommitdiff
path: root/app/serializers/project_note_entity.rb
blob: f6cdea1d8b5a56248d216d42fbb68fb2869af21f (plain)
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
# frozen_string_literal: true

class ProjectNoteEntity < NoteEntity
  expose :human_access, if: -> (note, _) { note.project.present? } do |note|
    note.project.team.human_max_access(note.author_id)
  end

  expose :toggle_award_path, if: -> (note, _) { note.emoji_awardable? } do |note|
    toggle_award_emoji_project_note_path(note.project, note.id)
  end

  expose :path, if: -> (note, _) { note.id } do |note|
    project_note_path(note.project, note)
  end

  expose :resolve_path, if: -> (note, _) { note.part_of_discussion? && note.resolvable? } do |note|
    resolve_project_merge_request_discussion_path(note.project, note.noteable, note.discussion_id)
  end

  expose :resolve_with_issue_path, if: -> (note, _) { note.part_of_discussion? && note.resolvable? } do |note|
    new_project_issue_path(note.project, merge_request_to_resolve_discussions_of: note.noteable.iid, discussion_to_resolve: note.discussion_id)
  end

  expose :delete_attachment_path, if: -> (note, _) { note.attachment? } do |note|
    delete_attachment_project_note_path(note.project, note)
  end
end