Skip to main content

Mountain/RPC/CocoonService/GenericRequest/WindowDialogs/
ShowMessage.rs

1#![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}