diff options
author | Jan Provaznik <jprovaznik@gitlab.com> | 2018-04-03 19:03:00 +0300 |
---|---|---|
committer | Fatih Acet <acetfatih@gmail.com> | 2018-04-03 19:03:00 +0300 |
commit | 65664c2eaeed853396c97a9b46e404c05209c42e (patch) | |
tree | e903e3afa6fe5c0f3492dc443776ebd1ce8ade57 /app/serializers/project_note_entity.rb | |
parent | 67ca10f33ec41e7cecac152e016aa2c0956a7586 (diff) |
Refactor discussions/notes code
Diffstat (limited to 'app/serializers/project_note_entity.rb')
-rw-r--r-- | app/serializers/project_note_entity.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/app/serializers/project_note_entity.rb b/app/serializers/project_note_entity.rb new file mode 100644 index 00000000000..e541bfbee8d --- /dev/null +++ b/app/serializers/project_note_entity.rb @@ -0,0 +1,25 @@ +class ProjectNoteEntity < NoteEntity + expose :human_access 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 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 |