DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/RPC/CocoonService/SCM/
UpdateScmGroup.rs1use serde_json::json;
5use tauri::Emitter;
6use tonic::{Response, Status};
7
8use crate::{
9 RPC::CocoonService::CocoonServiceImpl,
10 Vine::Generated::{Empty, UpdateScmGroupRequest},
11 dev_log,
12};
13
14pub async fn Fn(Service:&CocoonServiceImpl, Request:UpdateScmGroupRequest) -> Result<Response<Empty>, Status> {
15 dev_log!(
16 "cocoon",
17 "[CocoonService] update_scm_group: provider={} group={}",
18 Request.provider_id,
19 Request.group_id
20 );
21
22 let ResourceStates:Vec<serde_json::Value> = Request
23 .resource_states
24 .iter()
25 .map(|RS| {
26 json!({
27 "uri": RS.uri.as_ref().map(|U| U.value.as_str()).unwrap_or(""),
28 "decorations": RS.decorations,
29 })
30 })
31 .collect();
32
33 let _ = Service.environment.ApplicationHandle.emit(
37 "sky://scm/updateGroup",
38 json!({
39 "scmId": Request.provider_id,
40 "providerId": Request.provider_id,
41 "groupId": Request.group_id,
42 "resourceStates": ResourceStates,
43 }),
44 );
45
46 Ok(Response::new(Empty {}))
47}