Skip to main content

tuwunel_admin/query/raw/
get.rs

1use base64::prelude::*;
2use tokio::time::Instant;
3use tuwunel_core::Result;
4
5use super::{decode, encode};
6use crate::admin_command;
7
8#[admin_command]
9pub(super) async fn raw_get(&self, map: String, key: String, base64: bool) -> Result {
10	let map = self.services.db.get(&map)?;
11	let timer = Instant::now();
12
13	let key = decode(&key);
14	let handle = map.get(&key).await?;
15
16	let query_time = timer.elapsed();
17
18	let result = if base64 {
19		BASE64_STANDARD.encode(&handle)
20	} else {
21		encode(&handle)
22	};
23
24	write!(self, "Query completed in {query_time:?}:\n\n```rs\n{result:?}\n```").await
25}