Mountain/RPC/CocoonService/GenericRequest/WindowDialogs/
ShowMessage.rs1#![allow(unused_variables, dead_code, unused_imports)]
2
3use serde_json::{Value, json};
4use tonic::Response;
5use CommonLibrary::UserInterface::{
6 DTO::MessageSeverity::MessageSeverity,
7 UserInterfaceProvider::UserInterfaceProvider,
8};
9
10use crate::{Environment::MountainEnvironment::MountainEnvironment, Vine::Generated::GenericResponse};
11
12pub async fn Fn(
13 RequestId:u64,
14
15 Params:Value,
16
17 Env:&MountainEnvironment,
18
19 Severity:MessageSeverity,
20) -> Response<GenericResponse> {
21 let Message = Params.get("message").and_then(|V| V.as_str()).unwrap_or("").to_string();
22
23 let Items:Option<Value> = Params
24 .get("items")
25 .cloned()
26 .filter(|V| V.is_array() && !V.as_array().unwrap().is_empty());
27
28 match Env.ShowMessage(Severity, Message, Items).await {
29 Ok(Some(Selected)) => super::super::FileSystem::OkResponse(RequestId, &json!({ "selectedItem": Selected })),
30
31 Ok(None) => super::super::FileSystem::OkResponse(RequestId, &Value::Null),
32
33 Err(Error) => super::super::FileSystem::ErrResponse(RequestId, -32000, Error.to_string()),
34 }
35}