summaryrefslogtreecommitdiff
path: root/app/graphql/resolvers/group_packages_resolver.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/graphql/resolvers/group_packages_resolver.rb')
-rw-r--r--app/graphql/resolvers/group_packages_resolver.rb26
1 files changed, 16 insertions, 10 deletions
diff --git a/app/graphql/resolvers/group_packages_resolver.rb b/app/graphql/resolvers/group_packages_resolver.rb
index d441cd80249..d91fe84317d 100644
--- a/app/graphql/resolvers/group_packages_resolver.rb
+++ b/app/graphql/resolvers/group_packages_resolver.rb
@@ -1,8 +1,19 @@
# frozen_string_literal: true
+# rubocop: disable Graphql/ResolverType
module Resolvers
- class GroupPackagesResolver < BaseResolver
- type Types::Packages::PackageType.connection_type, null: true
+ class GroupPackagesResolver < PackagesBaseResolver
+ # The GraphQL type is defined in the extended class
+
+ argument :sort, Types::Packages::PackageGroupSortEnum,
+ description: 'Sort packages by this criteria.',
+ required: false,
+ default_value: :created_desc
+
+ GROUP_SORT_TO_PARAMS_MAP = SORT_TO_PARAMS_MAP.merge({
+ project_path_desc: { order_by: 'project_path', sort: 'desc' },
+ project_path_asc: { order_by: 'project_path', sort: 'asc' }
+ }).freeze
def ready?(**args)
context[self.class] ||= { executions: 0 }
@@ -12,16 +23,11 @@ module Resolvers
super
end
- def resolve(**args)
+ def resolve(sort:, **filters)
return unless packages_available?
- ::Packages::GroupPackagesFinder.new(current_user, object).execute
- end
-
- private
-
- def packages_available?
- ::Gitlab.config.packages.enabled
+ ::Packages::GroupPackagesFinder.new(current_user, object, filters.merge(GROUP_SORT_TO_PARAMS_MAP.fetch(sort))).execute
end
end
end
+# rubocop: enable Graphql/ResolverType