Skip to main content

Mountain/IPC/WindServiceHandlers/Configuration/
Workbench.rs

1//! Wire method: `workbench:getConfigurationValue`.
2
3use 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 provider:Arc<dyn ConfigurationProvider> = RunTime.Environment.Require();
19
20	let config = provider
21		.GetConfigurationValue(None, ConfigurationOverridesDTO::default())
22		.await
23		.map_err(|Error| format!("Failed to get workbench configuration: {}", Error))?;
24
25	dev_log!("config", "workbench config retrieved");
26
27	Ok(config)
28}