2021-05-14 12:10:58 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Packages
|
|
|
|
class GroupOrProjectPackageFinder
|
|
|
|
include ::Packages::FinderHelper
|
|
|
|
|
|
|
|
def initialize(current_user, project_or_group, params = {})
|
|
|
|
@current_user = current_user
|
|
|
|
@project_or_group = project_or_group
|
|
|
|
@params = params
|
|
|
|
end
|
|
|
|
|
|
|
|
def execute
|
|
|
|
raise NotImplementedError
|
|
|
|
end
|
|
|
|
|
|
|
|
def execute!
|
|
|
|
raise NotImplementedError
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def packages
|
|
|
|
raise NotImplementedError
|
|
|
|
end
|
|
|
|
|
|
|
|
def base
|
|
|
|
if project?
|
2021-05-25 15:10:33 +00:00
|
|
|
project_packages
|
2021-05-14 12:10:58 +00:00
|
|
|
elsif group?
|
2021-05-25 15:10:33 +00:00
|
|
|
group_packages
|
2021-05-14 12:10:58 +00:00
|
|
|
else
|
|
|
|
::Packages::Package.none
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def project?
|
|
|
|
@project_or_group.is_a?(::Project)
|
|
|
|
end
|
|
|
|
|
|
|
|
def group?
|
|
|
|
@project_or_group.is_a?(::Group)
|
|
|
|
end
|
2021-05-25 15:10:33 +00:00
|
|
|
|
|
|
|
def project_packages
|
|
|
|
packages_for_project(@project_or_group)
|
|
|
|
end
|
|
|
|
|
|
|
|
def group_packages
|
|
|
|
packages_visible_to_user(@current_user, within_group: @project_or_group)
|
|
|
|
end
|
2021-05-14 12:10:58 +00:00
|
|
|
end
|
|
|
|
end
|