summaryrefslogtreecommitdiff
path: root/app/serializers/discussion_entity.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/serializers/discussion_entity.rb')
-rw-r--r--app/serializers/discussion_entity.rb48
1 files changed, 2 insertions, 46 deletions
diff --git a/app/serializers/discussion_entity.rb b/app/serializers/discussion_entity.rb
index 497471699b2..bcf6b331192 100644
--- a/app/serializers/discussion_entity.rb
+++ b/app/serializers/discussion_entity.rb
@@ -1,23 +1,8 @@
# frozen_string_literal: true
-class DiscussionEntity < Grape::Entity
- include RequestAwareEntity
- include NotesHelper
-
- expose :id, :reply_id
- expose :position, if: -> (d, _) { d.diff_discussion? && !d.legacy_diff_discussion? }
- expose :original_position, if: -> (d, _) { d.diff_discussion? && !d.legacy_diff_discussion? }
- expose :line_code, if: -> (d, _) { d.diff_discussion? }
- expose :expanded?, as: :expanded
- expose :active?, as: :active, if: -> (d, _) { d.diff_discussion? }
- expose :project_id
-
+class DiscussionEntity < BaseDiscussionEntity
expose :notes do |discussion, opts|
- request.note_entity.represent(discussion.notes, opts)
- end
-
- expose :discussion_path do |discussion|
- discussion_path(discussion)
+ request.note_entity.represent(discussion.notes, opts.merge(with_base_discussion: false))
end
expose :positions, if: -> (d, _) { display_merge_ref_discussions?(d) } do |discussion|
@@ -28,42 +13,13 @@ class DiscussionEntity < Grape::Entity
discussion.diff_note_positions.map(&:line_code)
end
- expose :individual_note?, as: :individual_note
- expose :resolvable do |discussion|
- discussion.resolvable?
- end
-
expose :resolved?, as: :resolved
expose :resolved_by_push?, as: :resolved_by_push
expose :resolved_by, using: NoteUserEntity
expose :resolved_at
- expose :resolve_path, if: -> (d, _) { d.resolvable? } do |discussion|
- resolve_project_merge_request_discussion_path(discussion.project, discussion.noteable, discussion.id)
- end
- expose :resolve_with_issue_path, if: -> (d, _) { d.resolvable? } do |discussion|
- new_project_issue_path(discussion.project, merge_request_to_resolve_discussions_of: discussion.noteable.iid, discussion_to_resolve: discussion.id)
- end
-
- expose :diff_file, using: DiscussionDiffFileEntity, if: -> (d, _) { d.diff_discussion? }
-
- expose :diff_discussion?, as: :diff_discussion
-
- expose :truncated_diff_lines_path, if: -> (d, _) { !d.expanded? && !render_truncated_diff_lines? } do |discussion|
- project_merge_request_discussion_path(discussion.project, discussion.noteable, discussion)
- end
-
- expose :truncated_diff_lines, using: DiffLineEntity, if: -> (d, _) { d.diff_discussion? && d.on_text? && (d.expanded? || render_truncated_diff_lines?) }
-
- expose :for_commit?, as: :for_commit
- expose :commit_id
- expose :confidential?, as: :confidential
private
- def render_truncated_diff_lines?
- options[:render_truncated_diff_lines]
- end
-
def current_user
request.current_user
end