diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 14:18:50 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 14:18:50 +0300 |
commit | 8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781 (patch) | |
tree | a77e7fe7a93de11213032ed4ab1f33a3db51b738 /app/graphql/types/group_type.rb | |
parent | 00b35af3db1abfe813a778f643dad221aad51fca (diff) |
Add latest changes from gitlab-org/gitlab@13-1-stable-ee
Diffstat (limited to 'app/graphql/types/group_type.rb')
-rw-r--r-- | app/graphql/types/group_type.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/app/graphql/types/group_type.rb b/app/graphql/types/group_type.rb index 20b4c66ba95..fd7d9a9ba3d 100644 --- a/app/graphql/types/group_type.rb +++ b/app/graphql/types/group_type.rb @@ -65,6 +65,45 @@ module Types null: true, description: 'A single board of the group', resolver: Resolvers::BoardsResolver.single + + field :label, + Types::LabelType, + null: true, + description: 'A label available on this group' do + argument :title, GraphQL::STRING_TYPE, + required: true, + description: 'Title of the label' + end + + def label(title:) + BatchLoader::GraphQL.for(title).batch(key: group) do |titles, loader, args| + LabelsFinder + .new(current_user, group: args[:key], title: titles) + .execute + .each { |label| loader.call(label.title, label) } + end + end + + field :labels, + Types::LabelType.connection_type, + null: true, + description: 'Labels available on this group' do + argument :search_term, GraphQL::STRING_TYPE, + required: false, + description: 'A search term to find labels with' + end + + def labels(search_term: nil) + LabelsFinder + .new(current_user, group: group, search: search_term) + .execute + end + + private + + def group + object.respond_to?(:sync) ? object.sync : object + end end end |