2025-12-17 16:40:34 -07:00
|
|
|
use axum::{
|
|
|
|
|
Extension, Json,
|
|
|
|
|
extract::{Path, State},
|
|
|
|
|
};
|
2025-12-21 00:35:28 -07:00
|
|
|
|
2025-12-17 16:40:34 -07:00
|
|
|
use serde_json::Value;
|
2025-12-21 00:35:28 -07:00
|
|
|
use unshell_lib::{
|
|
|
|
|
ModuleError,
|
|
|
|
|
config::{Tree, TreeMessage},
|
|
|
|
|
debug,
|
|
|
|
|
};
|
2025-12-17 16:40:34 -07:00
|
|
|
|
2025-12-20 18:19:08 -07:00
|
|
|
use crate::{Server, auth::structs::CurrentUser};
|
2025-12-17 16:40:34 -07:00
|
|
|
|
2025-12-21 00:35:28 -07:00
|
|
|
impl Server {
|
|
|
|
|
pub async fn get_tree2_root(
|
|
|
|
|
State(server): State<Server>,
|
|
|
|
|
Extension(extension): Extension<CurrentUser>,
|
|
|
|
|
) -> Json<Value> {
|
|
|
|
|
Self::get_tree2(State(server), Path("".into()), Extension(extension)).await
|
2025-12-17 16:40:34 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub async fn get_tree2(
|
2025-12-21 12:04:53 -07:00
|
|
|
State(mut server): State<Server>,
|
2025-12-17 16:40:34 -07:00
|
|
|
Path(path): Path<String>,
|
|
|
|
|
Extension(_): Extension<CurrentUser>,
|
|
|
|
|
) -> Json<Value> {
|
|
|
|
|
debug!("GET /api/interface/{}", path);
|
|
|
|
|
|
2025-12-21 00:35:28 -07:00
|
|
|
let result = server
|
|
|
|
|
.get(&path, TreeMessage::RequestStructAndValue)
|
|
|
|
|
.map_err(|e| ModuleError::CryptError(e.to_string()));
|
2025-12-17 16:40:34 -07:00
|
|
|
|
|
|
|
|
Json(serde_json::to_value(result).unwrap())
|
|
|
|
|
}
|
2025-12-21 12:04:53 -07:00
|
|
|
|
|
|
|
|
pub async fn post_tree2(
|
|
|
|
|
State(mut server): State<Server>,
|
|
|
|
|
Path(path): Path<String>,
|
|
|
|
|
Extension(_): Extension<CurrentUser>,
|
|
|
|
|
Json(tree_message): Json<TreeMessage>,
|
|
|
|
|
) -> Json<Value> {
|
|
|
|
|
debug!("POST /api/interface/{}", path);
|
|
|
|
|
|
|
|
|
|
let result = server
|
|
|
|
|
.get(&path, tree_message)
|
|
|
|
|
.map_err(|e| ModuleError::CryptError(e.to_string()));
|
|
|
|
|
|
|
|
|
|
Json(serde_json::to_value(result).unwrap())
|
|
|
|
|
}
|
2025-12-17 16:40:34 -07:00
|
|
|
}
|