Mountain/IPC/WindServiceHandlers/Cocoon/
Request.rs1#![allow(unused_variables, dead_code, unused_imports)]
2
3use serde_json::Value;
9
10pub async fn Fn(Arguments:Vec<Value>) -> Result<Value, String> {
11 crate::dev_log!("ipc", "cocoon:request method={:?}", Arguments.first());
12
13 let MethodOpt = Arguments.first().and_then(|V| V.as_str()).map(|S| S.to_string());
14
15 match MethodOpt {
16 None => Err("cocoon:request requires method string in slot 0".to_string()),
17
18 Some(Method) => {
19 let Payload = Arguments.get(1).cloned().unwrap_or(Value::Null);
20
21 let _ = crate::Vine::Client::WaitForClientConnection::Fn("cocoon-main", 5000).await;
26
27 crate::Vine::Client::SendRequest::Fn("cocoon-main", Method.clone(), Payload, 30_000)
28 .await
29 .map_err(|Error| format!("cocoon:request {} failed: {:?}", Method, Error))
30 },
31 }
32}