diff options
Diffstat (limited to 'app/models/cycle_analytics/project_level.rb')
-rw-r--r-- | app/models/cycle_analytics/project_level.rb | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/app/models/cycle_analytics/project_level.rb b/app/models/cycle_analytics/project_level.rb index 26cdcc0db4b..5bd07b3f6c3 100644 --- a/app/models/cycle_analytics/project_level.rb +++ b/app/models/cycle_analytics/project_level.rb @@ -2,7 +2,6 @@ module CycleAnalytics class ProjectLevel - include LevelBase attr_reader :project, :options def initialize(project, options:) @@ -21,13 +20,29 @@ module CycleAnalytics Gitlab::CycleAnalytics::Permissions.get(user: user, project: project) end + def stats + @stats ||= default_stage_names.map do |stage_name| + self[stage_name].as_json + end + end + + def [](stage_name) + CycleAnalytics::ProjectLevelStageAdapter.new(build_stage(stage_name), options) + end + + private + def build_stage(stage_name) stage_params = stage_params_by_name(stage_name).merge(project: project) Analytics::CycleAnalytics::ProjectStage.new(stage_params) end - def resource_parent - project + def stage_params_by_name(name) + Gitlab::Analytics::CycleAnalytics::DefaultStages.find_by_name!(name) + end + + def default_stage_names + Gitlab::Analytics::CycleAnalytics::DefaultStages.symbolized_stage_names end end end |