use crate::GitRepository; use async_graphql::{EmptyMutation, EmptySubscription, Schema}; pub mod error; pub mod query; pub mod resolver; pub mod scalars; pub mod types; pub use async_graphql::ErrorExtensions as GitErrorExtensions; pub use query::GitQuery; pub use scalars::{Base64Scalar, DateTimeScalar, ObjectIdScalar}; #[derive(Clone)] pub struct GitGraphQuery { repo: GitRepository, } impl GitGraphQuery { pub fn new(repo: GitRepository) -> Self { GitGraphQuery { repo } } pub fn into_query(self) -> GitQuery { GitQuery { repo: self.repo } } } pub type GitSchema = Schema; pub fn build_schema(repo: GitRepository) -> GitSchema { Schema::build( GitQuery::new(repo.clone()), EmptyMutation, EmptySubscription, ) .data(repo) .finish() }