reactive_graph_dynamic_graph_impl/root/
query.rs

1use 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}