summaryrefslogtreecommitdiff
path: root/app/serializers/rollout_status_entity.rb
blob: 9f4c844859bb233ce6769f5f930dda2d40fe7969 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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