summaryrefslogtreecommitdiff
path: root/app/serializers/rollout_status_entity.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/serializers/rollout_status_entity.rb')
-rw-r--r--app/serializers/rollout_status_entity.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/app/serializers/rollout_status_entity.rb b/app/serializers/rollout_status_entity.rb
new file mode 100644
index 00000000000..9f4c844859b
--- /dev/null
+++ b/app/serializers/rollout_status_entity.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class RolloutStatusEntity < Grape::Entity
+ include RequestAwareEntity
+
+ expose :status, as: :status
+
+ # To be removed in API v5
+ expose :has_legacy_app_label do |_rollout_status|
+ false
+ end
+
+ expose :instances, if: -> (rollout_status, _) { rollout_status.found? }
+ expose :completion, if: -> (rollout_status, _) { rollout_status.found? }
+ expose :complete?, as: :is_completed, if: -> (rollout_status, _) { rollout_status.found? }
+ expose :canary_ingress, using: RolloutStatuses::IngressEntity, expose_nil: false,
+ if: -> (rollout_status, _) { rollout_status.found? && rollout_status.canary_ingress_exists? }
+end