use crate::{error::ApiError, state::AppState};
use axum::{
Json,
extract::{Path, State},
};
use molten_core::{FormBuilder, FormDefinition};
use molten_service::ServiceError;
pub async fn create_form(
State(state): State<AppState>,
Json(builder): Json<FormBuilder>,
) -> Result<Json<FormDefinition>, ApiError> {
let form_def: FormDefinition = builder
.build()
.map_err(ServiceError::FormValidationErrors)?;
let form = state.form_service.save_form(form_def).await?;
Ok(Json(form))
}
pub async fn get_form(
State(state): State<AppState>,
Path(id): Path<String>,
) -> Result<Json<FormDefinition>, ApiError> {
let form = state.form_service.get_form(&id).await?;
Ok(Json(form))
}