Skip to main content

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}