Skip to main content

tuwunel_admin/debug/
sign_json.rs

1use tuwunel_core::{Err, Result, err, utils::math::Expected};
2
3use crate::admin_command;
4
5#[admin_command]
6pub(super) async fn sign_json(&self) -> Result {
7	if self.body.len() < 2
8		|| !self.body[0].trim().starts_with("```")
9		|| self.body.last().unwrap_or(&"").trim() != "```"
10	{
11		return Err!("Expected code block in command body. Add --help for details.");
12	}
13
14	let string = self.body[1..self.body.len().expected_sub(1)].join("\n");
15	let mut value = serde_json::from_str(&string).map_err(|e| err!("Invalid json: {e}"))?;
16
17	self.services.server_keys.sign_json(&mut value)?;
18
19	let json_text = serde_json::to_string_pretty(&value)?;
20	self.write_str(&json_text).await
21}