Skip to main content

Mountain/RPC/CocoonService/Task/
ExecuteTask.rs

1
2//! Forward a task-execution request to Sky over the
3//! `sky://task/execute` channel.
4
5use serde_json::json;
6use tauri::Emitter;
7use tonic::{Response, Status};
8
9use crate::{
10	RPC::CocoonService::CocoonServiceImpl,
11	Vine::Generated::{ExecuteTaskRequest, ExecuteTaskResponse},
12	dev_log,
13};
14
15pub async fn Fn(
16	Service:&CocoonServiceImpl,
17
18	Request:ExecuteTaskRequest,
19) -> Result<Response<ExecuteTaskResponse>, Status> {
20	dev_log!(
21		"cocoon",
22		"[CocoonService] execute_task: name={} source={}",
23		Request.name,
24		Request.source
25	);
26
27	let _ = Service
28		.environment
29		.ApplicationHandle
30		.emit("sky://task/execute", json!({ "name": Request.name, "source": Request.source }));
31
32	Ok(Response::new(ExecuteTaskResponse { task_id:0, success:true }))
33}