summaryrefslogtreecommitdiff
path: root/app/serializers/stage_entity.rb
diff options
context:
space:
mode:
authorLuke Bennett <lbennett@gitlab.com>2018-09-24 14:39:00 +0100
committerLuke Bennett <lbennett@gitlab.com>2018-09-24 14:39:00 +0100
commit05afd11e16aecd43adfb869ae90aa6cae13916ec (patch)
tree63b31431981d48ac970853778dd01a5301bb9564 /app/serializers/stage_entity.rb
parent086549d986a453e1b2dd0d09ffbd19d0487d9c51 (diff)
parent28086b203ae397e01d5e9870dfbddd66466450c2 (diff)
downloadgitlab-ce-05afd11e16aecd43adfb869ae90aa6cae13916ec.tar.gz
Merge remote-tracking branch 'origin/master' into ce-6983-promote-starting-a-gitlab-com-trial
Diffstat (limited to 'app/serializers/stage_entity.rb')
-rw-r--r--app/serializers/stage_entity.rb18
1 files changed, 17 insertions, 1 deletions
diff --git a/app/serializers/stage_entity.rb b/app/serializers/stage_entity.rb
index 00e6d32ee3a..029dd3d0684 100644
--- a/app/serializers/stage_entity.rb
+++ b/app/serializers/stage_entity.rb
@@ -19,7 +19,13 @@ class StageEntity < Grape::Entity
latest_statuses
end
- expose :detailed_status, as: :status, with: StatusEntity
+ expose :retried,
+ if: -> (_, opts) { opts[:retried] },
+ with: JobEntity do |stage|
+ retried_statuses
+ end
+
+ expose :detailed_status, as: :status, with: DetailedStatusEntity
expose :path do |stage|
project_pipeline_path(
@@ -48,9 +54,19 @@ class StageEntity < Grape::Entity
@grouped_statuses ||= stage.statuses.latest_ordered.group_by(&:status)
end
+ def grouped_retried_statuses
+ @grouped_retried_statuses ||= stage.statuses.retried_ordered.group_by(&:status)
+ end
+
def latest_statuses
HasStatus::ORDERED_STATUSES.map do |ordered_status|
grouped_statuses.fetch(ordered_status, [])
end.flatten
end
+
+ def retried_statuses
+ HasStatus::ORDERED_STATUSES.map do |ordered_status|
+ grouped_retried_statuses.fetch(ordered_status, [])
+ end.flatten
+ end
end