diff options
Diffstat (limited to 'app/serializers/detailed_status_entity.rb')
-rw-r--r-- | app/serializers/detailed_status_entity.rb | 29 |
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 |