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, schema: axum::extract::Extension, Json(request): Json, ) -> Result { let response = schema.execute(request).await; Ok(Json(response).into_response()) } pub async fn graphql_get( State(_service): State, schema: axum::extract::Extension, ) -> Result { 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) }