Skip to main content

DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/RPC/CocoonService/GenericRequest/
Commands.rs

1#![allow(non_snake_case, unused_variables, dead_code, unused_imports)]
2
3//! Generic-request command handlers for `process_mountain_request`.
4//! Handles `commands.execute`, `executeCommand`, and `unregisterCommand`
5//! using Cocoon's `MountainGRPCClient` method name conventions.
6
7use serde_json::{Value, json};
8use tonic::Response;
9
10use crate::{Environment::MountainEnvironment::MountainEnvironment, Vine::Generated::GenericResponse};
11use CommonLibrary::Command::CommandExecutor::CommandExecutor;
12use super::FileSystem::{ErrResponse, OkResponse};
13
14pub async fn HandleCommandsExecute(RequestId:u64, Params:Value, Env:&MountainEnvironment) -> Response<GenericResponse> {
15	let CommandId = Params.get("id").and_then(|V| V.as_str()).unwrap_or("").to_string();
16	let Arg = Params.get("arg").cloned().unwrap_or(Value::Null);
17	match Env.ExecuteCommand(CommandId, Arg).await {
18		Ok(V) => OkResponse(RequestId, &V),
19		Err(Error) => ErrResponse(RequestId, -32000, Error.to_string()),
20	}
21}
22
23pub async fn HandleExecuteCommand(RequestId:u64, Params:Value, Env:&MountainEnvironment) -> Response<GenericResponse> {
24	let CommandId = Params.get("commandId").and_then(|V| V.as_str()).unwrap_or("").to_string();
25	let Arg = Params
26		.get("arguments")
27		.and_then(|A| A.as_array())
28		.and_then(|A| A.first())
29		.cloned()
30		.unwrap_or(Value::Null);
31	match Env.ExecuteCommand(CommandId, Arg).await {
32		Ok(V) => OkResponse(RequestId, &json!({ "result": V })),
33		Err(Error) => ErrResponse(RequestId, -32000, Error.to_string()),
34	}
35}
36
37pub async fn HandleUnregisterCommand(
38	RequestId:u64,
39	Params:Value,
40	Env:&MountainEnvironment,
41) -> Response<GenericResponse> {
42	let ExtensionId = Params.get("extensionId").and_then(|V| V.as_str()).unwrap_or("").to_string();
43	let CommandId = Params.get("commandId").and_then(|V| V.as_str()).unwrap_or("").to_string();
44	match Env.UnregisterCommand(ExtensionId, CommandId).await {
45		Ok(()) => OkResponse(RequestId, &json!({ "success": true })),
46		Err(Error) => ErrResponse(RequestId, -32000, Error.to_string()),
47	}
48}