DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/Command/SourceControlManagement/
GetAllSourceControlManagementState.rs1use std::sync::Arc;
6
7use serde_json::{Value, json};
8use tauri::{State, command};
9
10use crate::{
11 ApplicationState::State::ApplicationState::{ApplicationState, MapLockError},
12 dev_log,
13};
14
15#[command]
16pub async fn GetAllSourceControlManagementState(State:State<'_, Arc<ApplicationState>>) -> Result<Value, String> {
17 dev_log!("commands", "getting all SCM state for UI");
18
19 let Providers = State
20 .Feature
21 .Markers
22 .SourceControlManagementProviders
23 .lock()
24 .map_err(MapLockError)
25 .map_err(|Error| Error.to_string())?
26 .clone();
27
28 let Groups = State
29 .Feature
30 .Markers
31 .SourceControlManagementGroups
32 .lock()
33 .map_err(MapLockError)
34 .map_err(|Error| Error.to_string())?
35 .clone();
36
37 let Resources = State
38 .Feature
39 .Markers
40 .SourceControlManagementResources
41 .lock()
42 .map_err(MapLockError)
43 .map_err(|Error| Error.to_string())?
44 .clone();
45
46 Ok(json!({
47 "providers": Providers,
48 "groups": Groups,
49 "resources": Resources,
50 }))
51}