use axum::Json; use axum::extract::State; use api_types::{ConfigResponse, ProviderCapabilitiesResponse, ProviderInfo}; use application::config::GetConfigQuery; use crate::errors::AppError; use crate::state::AppState; pub async fn get_config( State(state): State, ) -> Result, AppError> { let sys_config = application::config::get_config::execute(&state.config_deps, GetConfigQuery); let providers: Vec = sys_config .providers .into_iter() .map(|p| ProviderInfo { id: p.id, capabilities: ProviderCapabilitiesResponse::from(p.capabilities), }) .collect(); let primary_caps = ProviderCapabilitiesResponse::from(sys_config.primary_capabilities); Ok(Json(ConfigResponse { allow_registration: sys_config.allow_registration, providers, provider_capabilities: primary_caps, available_provider_types: sys_config.available_provider_types, })) }