2020-09-14 15:09:28 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Resolvers
|
|
|
|
class MembersResolver < BaseResolver
|
|
|
|
include Gitlab::Graphql::Authorize::AuthorizeResource
|
|
|
|
include LooksAhead
|
|
|
|
|
2020-11-17 12:09:15 +00:00
|
|
|
type Types::MemberInterface.connection_type, null: true
|
|
|
|
|
2021-07-22 12:10:04 +00:00
|
|
|
argument :search, GraphQL::Types::String,
|
2020-09-14 15:09:28 +00:00
|
|
|
required: false,
|
2021-01-12 00:10:42 +00:00
|
|
|
description: 'Search query.'
|
2020-09-14 15:09:28 +00:00
|
|
|
|
|
|
|
def resolve_with_lookahead(**args)
|
|
|
|
authorize!(object)
|
|
|
|
|
2020-12-02 06:09:50 +00:00
|
|
|
relations = args.delete(:relations)
|
|
|
|
|
|
|
|
apply_lookahead(finder_class.new(object, current_user, params: args).execute(include_relations: relations))
|
2020-09-14 15:09:28 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
2021-04-09 12:09:12 +00:00
|
|
|
def preloads
|
|
|
|
{
|
|
|
|
user: [:user, :source]
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2020-09-14 15:09:28 +00:00
|
|
|
def finder_class
|
|
|
|
# override in subclass
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|