summaryrefslogtreecommitdiff
path: root/app/serializers
diff options
context:
space:
mode:
Diffstat (limited to 'app/serializers')
-rw-r--r--app/serializers/analytics_summary_entity.rb8
-rw-r--r--app/serializers/cluster_application_entity.rb3
-rw-r--r--app/serializers/discussion_entity.rb15
-rw-r--r--app/serializers/merge_request_basic_entity.rb2
-rw-r--r--app/serializers/merge_request_poll_cached_widget_entity.rb2
-rw-r--r--app/serializers/merge_request_serializer.rb4
-rw-r--r--app/serializers/route_entity.rb8
-rw-r--r--app/serializers/route_serializer.rb5
8 files changed, 45 insertions, 2 deletions
diff --git a/app/serializers/analytics_summary_entity.rb b/app/serializers/analytics_summary_entity.rb
index b9797bfb021..57e9225e2da 100644
--- a/app/serializers/analytics_summary_entity.rb
+++ b/app/serializers/analytics_summary_entity.rb
@@ -4,4 +4,12 @@ class AnalyticsSummaryEntity < Grape::Entity
expose :value, safe: true
expose :title
expose :unit, if: { with_unit: true }
+
+ private
+
+ def value
+ return object.value if object.value.is_a? String
+
+ object.value&.nonzero? ? object.value.to_s : '-'
+ end
end
diff --git a/app/serializers/cluster_application_entity.rb b/app/serializers/cluster_application_entity.rb
index c08691c6bcf..85a40f1f5cb 100644
--- a/app/serializers/cluster_application_entity.rb
+++ b/app/serializers/cluster_application_entity.rb
@@ -16,4 +16,7 @@ class ClusterApplicationEntity < Grape::Entity
expose :available_domains, using: Serverless::DomainEntity, if: -> (e, _) { e.respond_to?(:available_domains) }
expose :pages_domain, using: Serverless::DomainEntity, if: -> (e, _) { e.respond_to?(:pages_domain) }
expose :modsecurity_mode, if: -> (e, _) { e.respond_to?(:modsecurity_mode) }
+ expose :host, if: -> (e, _) { e.respond_to?(:host) }
+ expose :port, if: -> (e, _) { e.respond_to?(:port) }
+ expose :protocol, if: -> (e, _) { e.respond_to?(:protocol) }
end
diff --git a/app/serializers/discussion_entity.rb b/app/serializers/discussion_entity.rb
index e302672042e..77881eaba0c 100644
--- a/app/serializers/discussion_entity.rb
+++ b/app/serializers/discussion_entity.rb
@@ -20,6 +20,14 @@ class DiscussionEntity < Grape::Entity
discussion_path(discussion)
end
+ expose :positions, if: -> (d, _) { display_merge_ref_discussions?(d) } do |discussion|
+ discussion.diff_note_positions.map(&:position)
+ end
+
+ expose :line_codes, if: -> (d, _) { display_merge_ref_discussions?(d) } do |discussion|
+ discussion.diff_note_positions.map(&:line_code)
+ end
+
expose :individual_note?, as: :individual_note
expose :resolvable do |discussion|
discussion.resolvable?
@@ -59,4 +67,11 @@ class DiscussionEntity < Grape::Entity
def current_user
request.current_user
end
+
+ def display_merge_ref_discussions?(discussion)
+ return unless discussion.diff_discussion?
+ return if discussion.legacy_diff_discussion?
+
+ Feature.enabled?(:merge_ref_head_comments, discussion.project)
+ end
end
diff --git a/app/serializers/merge_request_basic_entity.rb b/app/serializers/merge_request_basic_entity.rb
index 973e971b4c0..82baf4a4a78 100644
--- a/app/serializers/merge_request_basic_entity.rb
+++ b/app/serializers/merge_request_basic_entity.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class MergeRequestBasicEntity < Grape::Entity
- expose :merge_status
+ expose :public_merge_status, as: :merge_status
expose :merge_error
expose :state
expose :source_branch_exists?, as: :source_branch_exists
diff --git a/app/serializers/merge_request_poll_cached_widget_entity.rb b/app/serializers/merge_request_poll_cached_widget_entity.rb
index 2f8eb6650e8..72f629b3507 100644
--- a/app/serializers/merge_request_poll_cached_widget_entity.rb
+++ b/app/serializers/merge_request_poll_cached_widget_entity.rb
@@ -6,7 +6,7 @@ class MergeRequestPollCachedWidgetEntity < IssuableEntity
expose :merge_commit_sha
expose :short_merge_commit_sha
expose :merge_error
- expose :merge_status
+ expose :public_merge_status, as: :merge_status
expose :merge_user_id
expose :source_branch
expose :source_project_id
diff --git a/app/serializers/merge_request_serializer.rb b/app/serializers/merge_request_serializer.rb
index aa67cd1f39e..9fd50c8c51d 100644
--- a/app/serializers/merge_request_serializer.rb
+++ b/app/serializers/merge_request_serializer.rb
@@ -15,6 +15,10 @@ class MergeRequestSerializer < BaseSerializer
MergeRequestBasicEntity
when 'noteable'
MergeRequestNoteableEntity
+ when 'poll_cached_widget'
+ MergeRequestPollCachedWidgetEntity
+ when 'poll_widget'
+ MergeRequestPollWidgetEntity
else
# fallback to widget for old poll requests without `serializer` set
MergeRequestWidgetEntity
diff --git a/app/serializers/route_entity.rb b/app/serializers/route_entity.rb
new file mode 100644
index 00000000000..158fda5e00e
--- /dev/null
+++ b/app/serializers/route_entity.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+class RouteEntity < Grape::Entity
+ expose :id
+ expose :source_id
+ expose :source_type
+ expose :path
+end
diff --git a/app/serializers/route_serializer.rb b/app/serializers/route_serializer.rb
new file mode 100644
index 00000000000..0b187588301
--- /dev/null
+++ b/app/serializers/route_serializer.rb
@@ -0,0 +1,5 @@
+# frozen_string_literal: true
+
+class RouteSerializer < BaseSerializer
+ entity RouteEntity
+end