52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
class Projects::DeploymentsController < Projects::ApplicationController
 | 
						|
  before_action :authorize_read_environment!
 | 
						|
  before_action :authorize_read_deployment!
 | 
						|
 | 
						|
  def index
 | 
						|
    deployments = environment.deployments.reorder(created_at: :desc)
 | 
						|
    deployments = deployments.where('created_at > ?', params[:after].to_time) if params[:after]&.to_time
 | 
						|
 | 
						|
    render json: { deployments: DeploymentSerializer.new(project: project)
 | 
						|
                                  .represent_concise(deployments) }
 | 
						|
  end
 | 
						|
 | 
						|
  def metrics
 | 
						|
    return render_404 unless deployment.has_metrics?
 | 
						|
 | 
						|
    @metrics = deployment.metrics
 | 
						|
    if @metrics&.any?
 | 
						|
      render json: @metrics, status: :ok
 | 
						|
    else
 | 
						|
      head :no_content
 | 
						|
    end
 | 
						|
  rescue NotImplementedError
 | 
						|
    render_404
 | 
						|
  end
 | 
						|
 | 
						|
  def additional_metrics
 | 
						|
    return render_404 unless deployment.has_additional_metrics?
 | 
						|
 | 
						|
    respond_to do |format|
 | 
						|
      format.json do
 | 
						|
        metrics = deployment.additional_metrics
 | 
						|
 | 
						|
        if metrics.any?
 | 
						|
          render json: metrics
 | 
						|
        else
 | 
						|
          head :no_content
 | 
						|
        end
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  private
 | 
						|
 | 
						|
  def deployment
 | 
						|
    @deployment ||= environment.deployments.find_by(iid: params[:id])
 | 
						|
  end
 | 
						|
 | 
						|
  def environment
 | 
						|
    @environment ||= project.environments.find(params[:environment_id])
 | 
						|
  end
 | 
						|
end
 |