Module: Resolvers::Analytics::Aggregation::EngineResolver
- Defined in:
- app/graphql/resolvers/analytics/aggregation/engine_resolver.rb,
app/graphql/resolvers/analytics/aggregation/engine_resolver/base_engine_resolver.rb
Defined Under Namespace
Classes: BaseEngineResolver
Class Method Summary collapse
-
.build(engine, **graphql_context, &block) ⇒ Object
Factory method that dynamically creates a GraphQL resolver class for a specific aggregation engine This method constructs a resolver subclass that wraps a given aggregation engine (e.g., ClickHouse or ActiveRecord).
Class Method Details
.build(engine, **graphql_context, &block) ⇒ Object
Factory method that dynamically creates a GraphQL resolver class for a specific aggregation engine This method constructs a resolver subclass that wraps a given aggregation engine (e.g., ClickHouse or ActiveRecord)
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/graphql/resolvers/analytics/aggregation/engine_resolver.rb', line 12 def build(engine, **graphql_context, &block) klass = Class.new(BaseEngineResolver) klass.engine = engine adapter = ::Gitlab::Database::Aggregation::Graphql::Adapter klass.class_eval do type Types::Analytics::Aggregation::EngineResponseType.build(engine, **graphql_context).connection_type, null: true adapter.each_filter_argument(engine.filters) do |name, type, kwargs| argument(name, type, **kwargs) # rubocop:disable Graphql/Descriptions -- defined in adapter end end klass.class_eval(&block) klass end |