summaryrefslogtreecommitdiff
path: root/app/finders/data_transfer/project_data_transfer_finder.rb
blob: bcabbdb00a5d712406c3757e5b3e7c228ecb377f (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
# frozen_string_literal: true

module DataTransfer
  class ProjectDataTransferFinder
    def initialize(project:, from:, to:, user:)
      @project = project
      @from = from
      @to = to
      @user = user
    end

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

      ::Projects::DataTransfer
        .with_project_between_dates(project, from, to)
        .select(:project_id, :date, :repository_egress, :artifacts_egress, :packages_egress, :registry_egress,
          "repository_egress + artifacts_egress + packages_egress + registry_egress as total_egress")
    end

    private

    attr_reader :project, :from, :to, :user
  end
end