use serde_json::Map;
use vantage_core::Result;
use crate::graphql::name::validate;
use crate::graphql::select::GraphqlSelect;
use crate::graphql::select::render::RenderedQuery;
impl GraphqlSelect {
pub(crate) async fn render_aggregate_count(&self, count_field: &str) -> Result<RenderedQuery> {
validate("count field", count_field)?;
let args = self.render_root_and_filter_args().await?;
let args_str = if args.is_empty() {
String::new()
} else {
format!("({})", args.join(", "))
};
Ok(RenderedQuery {
query: format!("query {{ {count_field}{args_str} {{ aggregate {{ count }} }} }}"),
variables: Map::new(),
})
}
}