use crate::OrmDataloader; use async_graphql::{dataloader::DataLoader, dynamic::*}; use entity::*; use sea_orm::DatabaseConnection; use seaography::{Builder, BuilderContext}; lazy_static::lazy_static! { static ref CONTEXT : BuilderContext = BuilderContext :: default () ; } pub fn schema( database: DatabaseConnection, orm_dataloader: DataLoader, depth: Option, complexity: Option, ) -> Result { let mut builder = Builder::new(&CONTEXT); // Register entity including relations seaography::register_entities!(builder, [cake]); // Register entity only, no relations seaography::register_entities_without_relation!(builder, [cake_filling, filling, fruit]); let schema = builder.schema_builder(); let schema = if let Some(depth) = depth { schema.limit_depth(depth) } else { schema }; let schema = if let Some(complexity) = complexity { schema.limit_complexity(complexity) } else { schema }; schema.data(database).data(orm_dataloader).finish() }