diff options
author | Małgorzata Ksionek <mksionek@gitlab.com> | 2019-07-04 16:42:31 +0200 |
---|---|---|
committer | Małgorzata Ksionek <mksionek@gitlab.com> | 2019-07-15 15:06:40 +0200 |
commit | beaa63530669d10c7244d187fa386144bc5da7eb (patch) | |
tree | bc541f200d5a5b2c37ff50e1a75ad1b848e6c396 /app/serializers | |
parent | 0e8af2525f16d871510c24e6e15f1bc80f133edd (diff) | |
download | gitlab-ce-beaa63530669d10c7244d187fa386144bc5da7eb.tar.gz |
Add class for group level analytics
Add specs for group level
Update entities
Update base classes
Add groups-centric changes
Update plan and review stage
Add summary classes
Add summary spec
Update specs files
Add to specs test cases for group
Add changelog entry
Add group serializer
Fix typo
Fix typo
Add fetching namespace in sql query
Update specs
Add rubocop fix
Add rubocop fix
Modify method to be in sync with code review
Add counting deploys from subgroup
To group summary stage
Add subgroups handling
In group stage summary
Add additional spec
Add additional specs
Add more precise inheritance
Add attr reader to group level
Fix rubocop offence
Fix problems with specs
Add cr remarks
Renaming median method and a lot of calls in specs
Move spec setup
Rename method in specs
Add code review remarks regarding module
Add proper module name
Diffstat (limited to 'app/serializers')
-rw-r--r-- | app/serializers/analytics_issue_entity.rb | 6 | ||||
-rw-r--r-- | app/serializers/analytics_merge_request_entity.rb | 2 | ||||
-rw-r--r-- | app/serializers/analytics_stage_entity.rb | 4 | ||||
-rw-r--r-- | app/serializers/group_analytics_stage_entity.rb | 16 | ||||
-rw-r--r-- | app/serializers/group_analytics_stage_serializer.rb | 5 |
5 files changed, 27 insertions, 6 deletions
diff --git a/app/serializers/analytics_issue_entity.rb b/app/serializers/analytics_issue_entity.rb index ab15bd0ac7a..29d4a6ae1d0 100644 --- a/app/serializers/analytics_issue_entity.rb +++ b/app/serializers/analytics_issue_entity.rb @@ -20,12 +20,12 @@ class AnalyticsIssueEntity < Grape::Entity end expose :url do |object| - url_to(:namespace_project_issue, id: object[:iid].to_s) + url_to(:namespace_project_issue, object) end private - def url_to(route, id) - public_send("#{route}_url", request.project.namespace, request.project, id) # rubocop:disable GitlabSecurity/PublicSend + def url_to(route, object) + public_send("#{route}_url", object[:path], object[:name], object[:iid].to_s) # rubocop:disable GitlabSecurity/PublicSend end end diff --git a/app/serializers/analytics_merge_request_entity.rb b/app/serializers/analytics_merge_request_entity.rb index b7134da9461..21d7eeb81b0 100644 --- a/app/serializers/analytics_merge_request_entity.rb +++ b/app/serializers/analytics_merge_request_entity.rb @@ -4,6 +4,6 @@ class AnalyticsMergeRequestEntity < AnalyticsIssueEntity expose :state expose :url do |object| - url_to(:namespace_project_merge_request, id: object[:iid].to_s) + url_to(:namespace_project_merge_request, object) end end diff --git a/app/serializers/analytics_stage_entity.rb b/app/serializers/analytics_stage_entity.rb index 8bc6da5aeeb..eb38b90fb18 100644 --- a/app/serializers/analytics_stage_entity.rb +++ b/app/serializers/analytics_stage_entity.rb @@ -8,9 +8,9 @@ class AnalyticsStageEntity < Grape::Entity expose :legend expose :description - expose :median, as: :value do |stage| + expose :project_median, as: :value do |stage| # median returns a BatchLoader instance which we first have to unwrap by using to_f # we use to_f to make sure results below 1 are presented to the end-user - stage.median.to_f.nonzero? ? distance_of_time_in_words(stage.median) : nil + stage.project_median.to_f.nonzero? ? distance_of_time_in_words(stage.project_median) : nil end end diff --git a/app/serializers/group_analytics_stage_entity.rb b/app/serializers/group_analytics_stage_entity.rb new file mode 100644 index 00000000000..019a3086f68 --- /dev/null +++ b/app/serializers/group_analytics_stage_entity.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class GroupAnalyticsStageEntity < Grape::Entity + include EntityDateHelper + + expose :title + expose :name + expose :legend + expose :description + + expose :group_median, as: :value do |stage| + # median returns a BatchLoader instance which we first have to unwrap by using to_f + # we use to_f to make sure results below 1 are presented to the end-user + stage.group_median.to_f.nonzero? ? distance_of_time_in_words(stage.group_median) : nil + end +end diff --git a/app/serializers/group_analytics_stage_serializer.rb b/app/serializers/group_analytics_stage_serializer.rb new file mode 100644 index 00000000000..ec448dea602 --- /dev/null +++ b/app/serializers/group_analytics_stage_serializer.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +class GroupAnalyticsStageSerializer < BaseSerializer + entity GroupAnalyticsStageEntity +end |