2ae9196
ZhenYi
feat(lib/git): add HTTP handler tree with routes and errors across analysis, archives, blobs, branches, commits, conflicts, content, diffs, hooks, lfs, logs, maintenance, packs, patches, pipelines, refs, remotes, repos, signatures, submodules, tags, trees
2ae9196
use axum::Json;
use axum::extract::State;
use axum::response::IntoResponse;
use crate::errors::ApiError;
use crate::graphql::{build_schema, GitSchema};
use crate::service::GitService;
pub async fn graphql_post(
State(_service): State<GitService>,
schema: axum::extract::Extension<GitSchema>,
Json(request): Json<async_graphql::Request>,
) -> Result<axum::response::Response, ApiError> {
let response = schema.execute(request).await;
Ok(Json(response).into_response())
}
pub async fn graphql_get(
State(_service): State<GitService>,
schema: axum::extract::Extension<GitSchema>,
) -> Result<axum::response::Response, ApiError> {
let request = async_graphql::Request::new("{ __typename }");
let response = schema.execute(request).await;
Ok(Json(response).into_response())
}
#[allow(dead_code)]
pub fn build_schema_for(service: GitService) -> GitSchema {
build_schema(service.state)
}