DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/IPC/WindServiceHandlers/Configuration/
Get.rs1use std::sync::Arc;
4
5use serde_json::Value;
6
7use crate::{RunTime::ApplicationRunTime::ApplicationRunTime, dev_log};
8
9pub async fn Fn(RunTime:Arc<ApplicationRunTime>, Arguments:Vec<Value>) -> Result<Value, String> {
10 use CommonLibrary::{
11 Configuration::{
12 ConfigurationProvider::ConfigurationProvider,
13 DTO::ConfigurationOverridesDTO::ConfigurationOverridesDTO,
14 },
15 Environment::Requires::Requires,
16 };
17
18 let key = Arguments
19 .get(0)
20 .ok_or("Missing configuration key".to_string())?
21 .as_str()
22 .ok_or("Configuration key must be a string".to_string())?;
23
24 let provider:Arc<dyn ConfigurationProvider> = RunTime.Environment.Require();
25
26 let value = provider
27 .GetConfigurationValue(Some(key.to_string()), ConfigurationOverridesDTO::default())
28 .await
29 .map_err(|Error| format!("Failed to get configuration: {}", Error))?;
30
31 dev_log!("config", "get: {} = {:?}", key, value);
32
33 Ok(value)
34}