blob: 9566e5afb9a49915437bc3c4f1772f332f437753 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# frozen_string_literal: true
module Gitlab
module Metrics
module Dashboard
# Responsible for processesing a dashboard hash, inserting
# relevant DB records & sorting for proper rendering in
# the UI. These includes shared metric info, custom metrics
# info, and alerts (only in EE).
class Processor
def initialize(project, dashboard, sequence, params)
@project = project
@dashboard = dashboard
@sequence = sequence
@params = params
end
# Returns a new dashboard hash with the results of
# running transforms on the dashboard.
# @return [Hash, nil]
def process
return unless @dashboard
@dashboard.deep_symbolize_keys.tap do |dashboard|
@sequence.each do |stage|
stage.new(@project, dashboard, @params).transform!
end
end
end
end
end
end
end
|