Skip to content
Snippets Groups Projects
Commit 2178bd5f authored by Kamil Trzcińśki's avatar Kamil Trzcińśki
Browse files

Fix stage.json endpoint

parent 551f8c4b
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -106,7 +106,7 @@ class Projects::PipelinesController < Projects::ApplicationController
 
render json: StageSerializer
.new(project: @project, current_user: @current_user)
.represent(@pipeline)
.represent(@stage, details: true)
end
 
def retry
Loading
Loading
class StageDetailsEntity < Grape::Entity
include RequestAwareEntity
expose :name
expose :title do |stage|
"#{stage.name}: #{detailed_status.label}"
end
expose :statuses, with: JobEntity
expose :detailed_status, as: :status, with: StatusEntity
private
alias_method :stage, :object
def detailed_status
stage.detailed_status(request.current_user)
end
end
Loading
Loading
@@ -11,6 +11,12 @@ class StageEntity < Grape::Entity
if: -> (_, opts) { opts[:grouped] },
with: JobGroupEntity
 
expose :latest_statuses,
if: -> (_, opts) { opts[:details] },
with: JobEntity do |stage|
latest_statuses
end
expose :detailed_status, as: :status, with: StatusEntity
 
expose :path do |stage|
Loading
Loading
@@ -35,4 +41,14 @@ class StageEntity < Grape::Entity
def detailed_status
stage.detailed_status(request.current_user)
end
def grouped_statuses
@grouped_statuses ||= stage.statuses.latest_ordered.group_by(&:status)
end
def latest_statuses
HasStatus::ORDERED_STATUSES.map do |ordered_status|
grouped_statuses.fetch(ordered_status, [])
end.flatten
end
end
Loading
Loading
@@ -3,5 +3,5 @@ class StageSerializer < BaseSerializer
 
InvalidResourceError = Class.new(StandardError)
 
entity StageDetailsEntity
entity StageEntity
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment