summaryrefslogtreecommitdiff
path: root/lib/gitlab/cycle_analytics/summary/issue.rb
blob: ed6c985009cc47dc7dcf26baaf595920080064cf (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
34
35
36
37
38
39
40
41
42
43
44
# frozen_string_literal: true

module Gitlab
  module CycleAnalytics
    module Summary
      class Issue < Base
        def initialize(project:, options:, current_user:)
          @project = project
          @options = options
          @current_user = current_user
        end

        def identifier
          :issues
        end

        def title
          n_('New Issue', 'New Issues', value.to_i)
        end

        def value
          @value ||= Value::PrettyNumeric.new(issues_count)
        end

        private

        def issues_count
          IssuesFinder
            .new(@current_user, finder_params)
            .execute
            .count
        end

        def finder_params
          @options.dup.tap do |hash|
            hash[:created_after] = hash.delete(:from)
            hash[:created_before] = hash.delete(:to)
            hash[:project_id] = @project.id
          end
        end
      end
    end
  end
end