62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| module Projects
 | |
|   module CycleAnalytics
 | |
|     class EventsController < Projects::ApplicationController
 | |
|       include CycleAnalyticsParams
 | |
|       include GracefulTimeoutHandling
 | |
| 
 | |
|       before_action :authorize_read_cycle_analytics!
 | |
|       before_action :authorize_read_build!, only: [:test, :staging]
 | |
|       before_action :authorize_read_issue!, only: [:issue, :production]
 | |
|       before_action :authorize_read_merge_request!, only: [:code, :review]
 | |
| 
 | |
|       feature_category :team_planning
 | |
|       urgency :low
 | |
| 
 | |
|       def issue
 | |
|         render_events(cycle_analytics[:issue].events)
 | |
|       end
 | |
| 
 | |
|       def plan
 | |
|         render_events(cycle_analytics[:plan].events)
 | |
|       end
 | |
| 
 | |
|       def code
 | |
|         render_events(cycle_analytics[:code].events)
 | |
|       end
 | |
| 
 | |
|       def test
 | |
|         options(cycle_analytics_project_params)[:branch] = cycle_analytics_project_params[:branch_name]
 | |
| 
 | |
|         render_events(cycle_analytics[:test].events)
 | |
|       end
 | |
| 
 | |
|       def review
 | |
|         render_events(cycle_analytics[:review].events)
 | |
|       end
 | |
| 
 | |
|       def staging
 | |
|         render_events(cycle_analytics[:staging].events)
 | |
|       end
 | |
| 
 | |
|       def production
 | |
|         render_events(cycle_analytics[:production].events)
 | |
|       end
 | |
| 
 | |
|       private
 | |
| 
 | |
|       def render_events(events)
 | |
|         respond_to do |format|
 | |
|           format.html
 | |
|           format.json { render json: { events: events } }
 | |
|         end
 | |
|       end
 | |
| 
 | |
|       def cycle_analytics
 | |
|         @cycle_analytics ||= ::Analytics::CycleAnalytics::ProjectLevel.new(project: project, options: options(cycle_analytics_project_params))
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 |