From 9901c3df41d37e5d5650e28a5287a8ddf0aa754e Mon Sep 17 00:00:00 2001 From: Timothy Andrew Date: Thu, 8 Sep 2016 15:03:38 +0530 Subject: [PATCH] Add a JSON version of the `CycleAnalytics` page. --- app/controllers/projects/cycle_analytics_controller.rb | 5 +++++ app/models/cycle_analytics.rb | 7 +++++++ app/policies/project_policy.rb | 1 + 3 files changed, 13 insertions(+) diff --git a/app/controllers/projects/cycle_analytics_controller.rb b/app/controllers/projects/cycle_analytics_controller.rb index 68cc79fb166..9903fae6f7d 100644 --- a/app/controllers/projects/cycle_analytics_controller.rb +++ b/app/controllers/projects/cycle_analytics_controller.rb @@ -3,6 +3,11 @@ class Projects::CycleAnalyticsController < Projects::ApplicationController def show @cycle_analytics = CycleAnalytics.new(@project, from: parse_start_date) + + respond_to do |format| + format.html + format.json { render json: @cycle_analytics } + end end private diff --git a/app/models/cycle_analytics.rb b/app/models/cycle_analytics.rb index a52b5aff559..9444f1f31a8 100644 --- a/app/models/cycle_analytics.rb +++ b/app/models/cycle_analytics.rb @@ -6,6 +6,13 @@ class CycleAnalytics @from = from end + def as_json(options = {}) + { + issue: issue, plan: plan, code: code, test: test, + review: review, staging: staging, production: production + } + end + def issue calculate_metric(Queries::issues(@project, created_after: @from), -> (data_point) { data_point[:issue].created_at }, diff --git a/app/policies/project_policy.rb b/app/policies/project_policy.rb index acf36d422d1..08feb2cbb0e 100644 --- a/app/policies/project_policy.rb +++ b/app/policies/project_policy.rb @@ -101,6 +101,7 @@ class ProjectPolicy < BasePolicy can! :admin_pipeline can! :admin_environment can! :admin_deployment + can! :read_cycle_analytics end def public_access!