use axum::Json; use axum::extract::{Path, State}; use serde::Deserialize; use uuid::Uuid; use crate::Result; use crate::api::AppState; use crate::warrens::Warren; use crate::fs::DirectoryEntry; #[derive(Deserialize)] pub(super) struct WarrenRequestPath { warren_id: Uuid, rest: Option, } pub(super) async fn route( State(state): State, Path(WarrenRequestPath { warren_id, rest }): Path, ) -> Result>> { let warren = Warren::get(state.pool(), &warren_id).await?; let entries = warren.read_path(state.serve_dir(), rest).await?; Ok(Json(entries)) }