Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
192918cd
Commit
192918cd
authored
8 years ago
by
James Lopez
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactored duplicated code in controller, updated JSON array naming and fixed specs
parent
b4bb33c5
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
36 additions
and
49 deletions
+36
-49
app/controllers/concerns/cycle_analytics_params.rb
app/controllers/concerns/cycle_analytics_params.rb
+7
-0
app/controllers/projects/cycle_analytics/events_controller.rb
...controllers/projects/cycle_analytics/events_controller.rb
+13
-26
app/controllers/projects/cycle_analytics_controller.rb
app/controllers/projects/cycle_analytics_controller.rb
+2
-9
spec/requests/projects/cycle_analytics_events_spec.rb
spec/requests/projects/cycle_analytics_events_spec.rb
+14
-14
No files found.
app/controllers/concerns/cycle_analytics_params.rb
0 → 100644
View file @
192918cd
module
CycleAnalyticsParams
extend
ActiveSupport
::
Concern
def
start_date
(
params
)
params
[
:start_date
]
==
'30'
?
30
.
days
.
ago
:
90
.
days
.
ago
end
end
This diff is collapsed.
Click to expand it.
app/controllers/projects/cycle_analytics/events_controller.rb
View file @
192918cd
class
Projects::CycleAnalytics::EventsController
<
Projects
::
ApplicationController
# TODO: fix authorization
# before_action :authorize_read_cycle_analytics!
include
CycleAnalyticsParams
# TODO: refactor +event_hash+
before_action
:authorize_read_cycle_analytics!
def
issue
render_events
(
issues:
events
.
issue_events
)
render_events
(
events
.
issue_events
)
end
def
plan
render_events
(
commits:
events
.
plan_events
)
render_events
(
events
.
plan_events
)
end
def
code
render_events
(
merge_requests:
events
.
code_events
)
render_events
(
events
.
code_events
)
end
def
test
@opts
=
{
from:
start_date
,
branch:
events_params
[
:branch_name
]
}
@opts
=
{
from:
start_date
(
events_params
)
,
branch:
events_params
[
:branch_name
]
}
render_events
(
builds:
events
.
test_events
)
render_events
(
events
.
test_events
)
end
def
review
render_events
(
merge_requests:
events
.
review_events
)
render_events
(
events
.
review_events
)
end
def
staging
render_events
(
builds:
events
.
staging_events
)
render_events
(
events
.
staging_events
)
end
def
production
render_events
(
issues:
events
.
production_events
)
render_events
(
events
.
production_events
)
end
private
def
render_events
(
event
_hash
)
def
render_events
(
event
s
)
respond_to
do
|
format
|
format
.
html
format
.
json
{
render
json:
event_hash
}
end
end
# 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
format
.
json
{
render
json:
{
items:
events
}
}
end
end
...
...
@@ -60,7 +47,7 @@ class Projects::CycleAnalytics::EventsController < Projects::ApplicationControll
end
def
options
@opts
||=
{
from:
start_date
}
@opts
||=
{
from:
start_date
(
events_params
)
}
end
def
events_params
...
...
This diff is collapsed.
Click to expand it.
app/controllers/projects/cycle_analytics_controller.rb
View file @
192918cd
class
Projects::CycleAnalyticsController
<
Projects
::
ApplicationController
include
ActionView
::
Helpers
::
DateHelper
include
ActionView
::
Helpers
::
TextHelper
include
CycleAnalyticsParams
before_action
:authorize_read_cycle_analytics!
def
show
@cycle_analytics
=
::
CycleAnalytics
.
new
(
@project
,
from:
parse_start_date
)
@cycle_analytics
=
::
CycleAnalytics
.
new
(
@project
,
from:
start_date
(
cycle_analytics_params
)
)
respond_to
do
|
format
|
format
.
html
...
...
@@ -15,14 +16,6 @@ class Projects::CycleAnalyticsController < Projects::ApplicationController
private
def
parse_start_date
case
cycle_analytics_params
[
:start_date
]
when
'30'
then
30
.
days
.
ago
when
'90'
then
90
.
days
.
ago
else
90
.
days
.
ago
end
end
def
cycle_analytics_params
return
{}
unless
params
[
:cycle_analytics
].
present?
...
...
This diff is collapsed.
Click to expand it.
spec/requests/projects/cycle_analytics_events_spec.rb
View file @
192918cd
...
...
@@ -17,17 +17,17 @@ describe 'cycle analytics events' do
it
'lists the issue events'
do
get
namespace_project_cycle_analytics_issue_path
(
project
.
namespace
,
project
,
format: :json
)
expect
(
json_response
[
'i
ssue
s'
]).
not_to
be_empty
expect
(
json_response
[
'i
tem
s'
]).
not_to
be_empty
first_issue_iid
=
Issue
.
order
(
created_at: :desc
).
pluck
(
:iid
).
first
.
to_s
expect
(
json_response
[
'i
ssue
s'
].
first
[
'iid'
]).
to
eq
(
first_issue_iid
)
expect
(
json_response
[
'i
tem
s'
].
first
[
'iid'
]).
to
eq
(
first_issue_iid
)
end
it
'lists the plan events'
do
get
namespace_project_cycle_analytics_plan_path
(
project
.
namespace
,
project
,
format: :json
)
expect
(
json_response
[
'
commit
s'
]).
not_to
be_empty
expect
(
json_response
[
'
item
s'
]).
not_to
be_empty
commits
=
[]
...
...
@@ -39,53 +39,53 @@ describe 'cycle analytics events' do
newest_sha
=
commits
.
sort_by
{
|
k
|
k
[
'date'
]
}.
first
[
:sha
][
0
...
8
]
expect
(
json_response
[
'
commit
s'
].
first
[
'sha'
]).
to
eq
(
newest_sha
)
expect
(
json_response
[
'
item
s'
].
first
[
'sha'
]).
to
eq
(
newest_sha
)
end
it
'lists the code events'
do
get
namespace_project_cycle_analytics_code_path
(
project
.
namespace
,
project
,
format: :json
)
expect
(
json_response
[
'
merge_request
s'
]).
not_to
be_empty
expect
(
json_response
[
'
item
s'
]).
not_to
be_empty
first_mr_iid
=
Issue
.
order
(
created_at: :desc
).
pluck
(
:iid
).
first
.
to_s
expect
(
json_response
[
'
merge_request
s'
].
first
[
'iid'
]).
to
eq
(
first_mr_iid
)
expect
(
json_response
[
'
item
s'
].
first
[
'iid'
]).
to
eq
(
first_mr_iid
)
end
it
'lists the test events'
do
get
namespace_project_cycle_analytics_test_path
(
project
.
namespace
,
project
,
format: :json
)
expect
(
json_response
[
'
build
s'
]).
not_to
be_empty
expect
(
json_response
[
'
item
s'
]).
not_to
be_empty
expect
(
json_response
[
'
build
s'
].
first
[
'date'
]).
not_to
be_empty
expect
(
json_response
[
'
item
s'
].
first
[
'date'
]).
not_to
be_empty
end
it
'lists the review events'
do
get
namespace_project_cycle_analytics_review_path
(
project
.
namespace
,
project
,
format: :json
)
expect
(
json_response
[
'
merge_request
s'
]).
not_to
be_empty
expect
(
json_response
[
'
item
s'
]).
not_to
be_empty
first_mr_iid
=
Issue
.
order
(
created_at: :desc
).
pluck
(
:iid
).
first
.
to_s
expect
(
json_response
[
'
merge_request
s'
].
first
[
'iid'
]).
to
eq
(
first_mr_iid
)
expect
(
json_response
[
'
item
s'
].
first
[
'iid'
]).
to
eq
(
first_mr_iid
)
end
it
'lists the staging events'
do
get
namespace_project_cycle_analytics_staging_path
(
project
.
namespace
,
project
,
format: :json
)
expect
(
json_response
[
'
build
s'
]).
not_to
be_empty
expect
(
json_response
[
'
item
s'
]).
not_to
be_empty
expect
(
json_response
[
'
build
s'
].
first
[
'date'
]).
not_to
be_empty
expect
(
json_response
[
'
item
s'
].
first
[
'date'
]).
not_to
be_empty
end
it
'lists the production events'
do
get
namespace_project_cycle_analytics_production_path
(
project
.
namespace
,
project
,
format: :json
)
expect
(
json_response
[
'i
ssue
s'
]).
not_to
be_empty
expect
(
json_response
[
'i
tem
s'
]).
not_to
be_empty
first_issue_iid
=
Issue
.
order
(
created_at: :desc
).
pluck
(
:iid
).
first
.
to_s
expect
(
json_response
[
'i
ssue
s'
].
first
[
'iid'
]).
to
eq
(
first_issue_iid
)
expect
(
json_response
[
'i
tem
s'
].
first
[
'iid'
]).
to
eq
(
first_issue_iid
)
end
end
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment