added cycle analytics events controller and started integration spec

This commit is contained in:
James Lopez 2016-10-24 15:24:56 +01:00
parent 3cdc9af78e
commit d472611265
3 changed files with 64 additions and 0 deletions

View file

@ -0,0 +1,34 @@
class Projects::CycleAnalytics::EventsController < Projects::ApplicationController
#before_action :authorize_read_cycle_analytics!
def issues
respond_to do |format|
format.html
format.json { render json: events.issue_events }
end
end
private
# TODO refactor this
def start_date
case events_params[:start_date]
when '30' then
30.days.ago
when '90' then
90.days.ago
else
90.days.ago
end
end
def events
@events ||= Gitlab::CycleAnalytics::Events.new(project: project, from: start_date)
end
def events_params
return {} unless params[:events].present?
{ start_date: params[:events][:start_date] }
end
end

View file

@ -153,6 +153,12 @@ resources :namespaces, path: '/', constraints: { id: /[a-zA-Z.0-9_\-]+/ }, only:
resource :cycle_analytics, only: [:show]
namespace :cycle_analytics do
scope :events, controller: '/projects/cycle_analytics/events' do
get :issues
end
end
resources :builds, only: [:index, :show], constraints: { id: /\d+/ } do
collection do
post :cancel_all

View file

@ -0,0 +1,24 @@
require 'spec_helper'
describe 'cycle analytics events' do
let(:user) { create(:user) }
let(:project) { create(:project) }
describe 'GET /:namespace/:project/cycle_analytics/events/issues' do
before do
project.team << [user, :developer]
login_as(user)
end
it 'lists the issue events' do
get namespace_project_cycle_analytics_issues_path(project.namespace, project, format: :json)
expect(json_response).to eq ([])
end
end
def json_response
JSON.parse(response.body)
end
end