summaryrefslogtreecommitdiff
path: root/app/serializers/detailed_status_entity.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/serializers/detailed_status_entity.rb')
-rw-r--r--app/serializers/detailed_status_entity.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/app/serializers/detailed_status_entity.rb b/app/serializers/detailed_status_entity.rb
new file mode 100644
index 00000000000..c772c807f76
--- /dev/null
+++ b/app/serializers/detailed_status_entity.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+class DetailedStatusEntity < Grape::Entity
+ include RequestAwareEntity
+
+ expose :icon, :text, :label, :group
+ expose :status_tooltip, as: :tooltip
+ expose :has_details?, as: :has_details
+ expose :details_path
+
+ expose :illustration do |status|
+ begin
+ status.illustration
+ rescue NotImplementedError
+ # ignored
+ end
+ end
+
+ expose :favicon do |status|
+ Gitlab::Favicon.status_overlay(status.favicon)
+ end
+
+ expose :action, if: -> (status, _) { status.has_action? } do
+ expose :action_icon, as: :icon
+ expose :action_title, as: :title
+ expose :action_path, as: :path
+ expose :action_method, as: :method
+ end
+end