e034b46
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<GitQuery, EmptyMutation, EmptySubscription>;
pub fn build_schema(repo: GitRepository) -> GitSchema {
Schema::build(
GitQuery::new(repo.clone()),
EmptyMutation,
EmptySubscription,
)
.data(repo)
.finish()
}