diff options
author | James Lopez <james@jameslopez.es> | 2016-11-15 13:23:17 +0100 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2016-11-17 08:22:58 +0100 |
commit | 73e9ec631995d5ed91a3eb5e8416c924e7d7c5ad (patch) | |
tree | 5048fdf732a43ed0ea0a51fc64e354df4e6177df /lib/gitlab/cycle_analytics | |
parent | 8743e59f78cd8f8701460796dcc06854281f3f73 (diff) | |
download | gitlab-ce-73e9ec631995d5ed91a3eb5e8416c924e7d7c5ad.tar.gz |
serialize all the things!
Diffstat (limited to 'lib/gitlab/cycle_analytics')
-rw-r--r-- | lib/gitlab/cycle_analytics/events.rb | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/lib/gitlab/cycle_analytics/events.rb b/lib/gitlab/cycle_analytics/events.rb index 69688a2a0ca..d3c7d6fe1aa 100644 --- a/lib/gitlab/cycle_analytics/events.rb +++ b/lib/gitlab/cycle_analytics/events.rb @@ -7,55 +7,46 @@ module Gitlab end def issue_events - @fetcher.fetch(stage: :issue).map { |event| parse_event(event) } + @fetcher.fetch(stage: :issue).map { |event| serialize_event(event) } end def plan_events - @fetcher.fetch(stage: :plan).each do |event| - event['total_time'] = distance_of_time_in_words(event['total_time'].to_f) + @fetcher.fetch(stage: :plan).map do |event| commit = first_time_reference_commit(event.delete('commits'), event) - event['title'] = commit.title - event['url'] = Gitlab::LightUrlBuilder.build(entity: :commit, project: @project, id: commit.id) - event['sha'] = commit.short_id - event['author_name'] = commit.author.name - event['author_profile_url'] = Gitlab::LightUrlBuilder.build(entity: :user, id: commit.author.username) - event['author_avatar_url'] = Gitlab::LightUrlBuilder.build(entity: :user_avatar, id: commit.author.id) + + AnalyticsCommitSerializer.new(project: @project, total_time: event['total_time']).represent(commit).as_json end end def code_events - @fetcher.fetch(stage: :code).map { |event| parse_event(event, entity: :merge_request) } + @fetcher.fetch(stage: :code).map { |event| serialize_event(event, entity: :merge_request) } end def test_events - @fetcher.fetch(stage: :test).map do |event| - parse_build_event(event) - end + @fetcher.fetch(stage: :test).map { |event| serialize_build_event(event) } end def review_events - @fetcher.fetch(stage: :review).map { |event| parse_event(event, entity: :merge_request) } + @fetcher.fetch(stage: :review).map { |event| serialize_event(event, entity: :merge_request) } end def staging_events - @fetcher.fetch(stage: :staging).map do |event| - parse_build_event(event) - end + @fetcher.fetch(stage: :staging).map { |event| serialize_build_event(event) } end def production_events - @fetcher.fetch(stage: :production).map { |event| parse_event(event) } + @fetcher.fetch(stage: :production).map { |event| serialize_event(event) } end private - def parse_event(event, entity: :issue) + def serialize_event(event, entity: :issue) event['author'] = User.find(event.delete('author_id')) AnalyticsGenericSerializer.new(project: @project, entity: entity).represent(event).as_json end - def parse_build_event(event) + def serialize_build_event(event) build = ::Ci::Build.find(event['id']) AnalyticsBuildSerializer.new.represent(build).as_json |