diff options
Diffstat (limited to 'app/controllers/projects/deployments_controller.rb')
-rw-r--r-- | app/controllers/projects/deployments_controller.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/app/controllers/projects/deployments_controller.rb b/app/controllers/projects/deployments_controller.rb new file mode 100644 index 00000000000..6644deb49c9 --- /dev/null +++ b/app/controllers/projects/deployments_controller.rb @@ -0,0 +1,34 @@ +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 + + private + + def deployment + @deployment ||= environment.deployments.find_by(iid: params[:id]) + end + + def environment + @environment ||= project.environments.find(params[:environment_id]) + end +end |