diff options
Diffstat (limited to 'app/graphql/resolvers/projects_resolver.rb')
-rw-r--r-- | app/graphql/resolvers/projects_resolver.rb | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/app/graphql/resolvers/projects_resolver.rb b/app/graphql/resolvers/projects_resolver.rb index f75f591b381..3bbadf87a71 100644 --- a/app/graphql/resolvers/projects_resolver.rb +++ b/app/graphql/resolvers/projects_resolver.rb @@ -12,9 +12,13 @@ module Resolvers required: false, description: 'Search query for project name, path, or description' + argument :ids, [GraphQL::ID_TYPE], + required: false, + description: 'Filter projects by IDs' + def resolve(**args) ProjectsFinder - .new(current_user: current_user, params: project_finder_params(args)) + .new(current_user: current_user, params: project_finder_params(args), project_ids_relation: parse_gids(args[:ids])) .execute end @@ -27,5 +31,9 @@ module Resolvers search: params[:search] }.compact end + + def parse_gids(gids) + gids&.map { |gid| GitlabSchema.parse_gid(gid, expected_type: ::Project).model_id } + end end end |