File: group_data_transfer_finder.rb

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (34 lines) | stat: -rw-r--r-- 929 bytes parent folder | download
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
# frozen_string_literal: true

module DataTransfer
  class GroupDataTransferFinder
    def initialize(group:, from:, to:, user:)
      @group = group
      @from = from
      @to = to
      @user = user
    end

    def execute
      return ::Projects::DataTransfer.none unless Ability.allowed?(user, :read_usage_quotas, group)

      ::Projects::DataTransfer
        .with_namespace_between_dates(group, from, to)
        .select('SUM(repository_egress
                      + artifacts_egress
                      + packages_egress
                      + registry_egress
                      ) as total_egress,
        SUM(repository_egress) as repository_egress,
        SUM(artifacts_egress) as artifacts_egress,
        SUM(packages_egress) as packages_egress,
        SUM(registry_egress) as registry_egress,
        date,
        namespace_id')
    end

    private

    attr_reader :group, :from, :to, :user
  end
end