1# frozen_string_literal: true 2 3module Resolvers 4 module Clusters 5 class AgentsResolver < BaseResolver 6 include LooksAhead 7 8 type Types::Clusters::AgentType.connection_type, null: true 9 10 extras [:lookahead] 11 12 when_single do 13 argument :name, GraphQL::Types::String, 14 required: true, 15 description: 'Name of the cluster agent.' 16 end 17 18 alias_method :project, :object 19 20 def resolve_with_lookahead(**args) 21 apply_lookahead( 22 ::Clusters::AgentsFinder 23 .new(project, current_user, params: args) 24 .execute 25 ) 26 end 27 28 private 29 30 def preloads 31 { 32 activity_events: { activity_events: [:user, agent_token: :agent] }, 33 tokens: :last_used_agent_tokens 34 } 35 end 36 end 37 end 38end 39