Skip to content
Clone
56417bd
30 lines 928 B Rust
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)
}