reactive_graph_dynamic_graph_impl/root/
query.rs1use crate::field::namespace_query_field;
2use crate::object::namespace::metrics::metrics_field;
3use crate::object::namespace::metrics::metrics_object;
4use crate::object::namespace::query::namespace_query;
5use async_graphql::dynamic::*;
6use itertools::Itertools;
7use reactive_graph_dynamic_graph_api::SchemaBuilderContext;
8
9pub fn get_query(mut schema: SchemaBuilder, context: &SchemaBuilderContext) -> SchemaBuilder {
10 let mut query = Object::new("Query").description("Queries");
11 schema = schema.register(metrics_object());
12 query = query.field(metrics_field(None));
13 for namespace in context.namespace_manager.get_all().iter().sorted() {
14 if let Some(object_namespace) = namespace_query(context.clone(), namespace) {
15 query = query.field(namespace_query_field(namespace));
16 schema = schema.register(object_namespace);
17 }
18 }
19 schema.register(query)
20}