diff options
author | Thong Kuah <tkuah@gitlab.com> | 2019-07-01 12:40:59 +0300 |
---|---|---|
committer | Thong Kuah <tkuah@gitlab.com> | 2019-07-08 00:13:21 +0300 |
commit | d2ba2951f737082edd568505f985ebf9a0808be7 (patch) | |
tree | 7da25a607c16810546f6ea57e5354ba145029918 /app/controllers | |
parent | 1b5b0dea5228ae7fd520c8bca3f03c4799a4d31d (diff) |
Extract deployment_metrics into own object
We can now share project so that we don't have to load project twice.
Also, this extracts non-relevant logic out of Deployment.
Update DeploymentsController accordingly
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/projects/deployments_controller.rb | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/app/controllers/projects/deployments_controller.rb b/app/controllers/projects/deployments_controller.rb index 0a009477d61..32111b07a0b 100644 --- a/app/controllers/projects/deployments_controller.rb +++ b/app/controllers/projects/deployments_controller.rb @@ -15,24 +15,22 @@ class Projects::DeploymentsController < Projects::ApplicationController # rubocop: enable CodeReuse/ActiveRecord def metrics - return render_404 unless deployment.has_metrics? + return render_404 unless deployment_metrics.has_metrics? - @metrics = deployment.metrics + @metrics = deployment_metrics.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_metrics? + return render_404 unless deployment_metrics.has_metrics? respond_to do |format| format.json do - metrics = deployment.additional_metrics + metrics = deployment_metrics.additional_metrics if metrics.any? render json: metrics @@ -45,6 +43,10 @@ class Projects::DeploymentsController < Projects::ApplicationController private + def deployment_metrics + @deployment_metrics ||= DeploymentMetrics.new(deployment.project, deployment) + end + # rubocop: disable CodeReuse/ActiveRecord def deployment @deployment ||= environment.deployments.find_by(iid: params[:id]) |