use axum::{ Json, extract::State, http::StatusCode, response::{IntoResponse, Response}, }; use std::{collections::HashMap, sync::Arc}; pub use pile_config::FieldSpec; use crate::Datasets; pub type FieldsResponse = HashMap; /// Retrieve this dataset's schema. #[utoipa::path( get, path = "/schema", responses( (status = 200, description = "This dataset's schema"), ) )] pub async fn get_schema(State(state): State>) -> Response { let fields: FieldsResponse = state .config .schema .iter() .map(|(k, v)| (k.as_str().to_owned(), v.clone())) .collect(); (StatusCode::OK, Json(fields)).into_response() }