batuta/serve/banco/handlers_config.rs
1//! Runtime config endpoint handlers.
2
3use axum::{extract::State, response::Json};
4
5use super::config::BancoConfig;
6use super::state::BancoState;
7
8/// GET /api/v1/config — read current configuration.
9pub async fn get_config_handler(State(_state): State<BancoState>) -> Json<BancoConfig> {
10 Json(BancoConfig::load())
11}
12
13/// PUT /api/v1/config — update configuration and persist to disk.
14pub async fn update_config_handler(
15 State(_state): State<BancoState>,
16 Json(config): Json<BancoConfig>,
17) -> Json<ConfigUpdateResponse> {
18 let saved = config.save().is_ok();
19 Json(ConfigUpdateResponse { saved, config })
20}
21
22/// Response from config update.
23#[derive(Debug, serde::Serialize)]
24pub struct ConfigUpdateResponse {
25 pub saved: bool,
26 pub config: BancoConfig,
27}