diff options
Diffstat (limited to 'server/src/routes/api/mod.rs')
-rw-r--r-- | server/src/routes/api/mod.rs | 73 |
1 files changed, 3 insertions, 70 deletions
diff --git a/server/src/routes/api/mod.rs b/server/src/routes/api/mod.rs index af795f1..d49ecec 100644 --- a/server/src/routes/api/mod.rs +++ b/server/src/routes/api/mod.rs @@ -5,31 +5,10 @@ */ pub mod error; -use std::path::PathBuf; - -use super::ui::{ - account::{login_logic, LoginForm}, - node::AssetRole, - CacheControlFile, -}; -use crate::{ - database::Database, - library::{Library, Node}, - routes::{api::error::ApiResult, ui::account::session::Session}, -}; -use anyhow::Context; -use jellycommon::api::ApiNode; -use log::info; -use rocket::{ - get, - http::{ContentType, CookieJar}, - post, - response::Redirect, - serde::json::Json, - State, -}; +use super::ui::account::{login_logic, LoginForm}; +use crate::{database::Database, routes::api::error::ApiResult}; +use rocket::{get, http::CookieJar, post, response::Redirect, serde::json::Json, State}; use serde_json::{json, Value}; -use tokio::fs::File; #[get("/api")] pub fn r_api_root() -> Redirect { @@ -50,49 +29,3 @@ pub fn r_api_account_login( login_logic(jar, database, &data.username, &data.password)?; Ok(json!({ "ok": true })) } - -#[get("/api/assets/node/<path..>?<role>")] -pub async fn r_api_assets_node( - _sess: Session, - path: PathBuf, - role: AssetRole, - library: &State<Library>, -) -> ApiResult<(ContentType, CacheControlFile)> { - let node = library - .nested_path(&path) - .context("retrieving library node")?; - let path = node.get_asset(library, role); - info!("loading asset from {path:?}"); - let ext = path.extension().unwrap().to_str().unwrap(); - Ok(( - ContentType::from_extension(ext).unwrap(), - CacheControlFile::new(File::open(path).await?).await, - )) -} - -#[get("/api/node/<path..>")] -pub fn r_api_node( - _sess: Session, - path: PathBuf, - library: &State<Library>, -) -> ApiResult<Json<ApiNode>> { - let node = library - .nested_path(&path) - .context("retrieving library node")?; - - Ok(Json(match node.as_ref() { - Node::Directory(d) => ApiNode::Directory { - identifier: d.identifier.clone(), - info: d.info.clone(), - children: d - .children - .iter() - .map(|c| c.identifier().to_string()) - .collect::<Vec<_>>(), - }, - Node::Item(i) => ApiNode::Item { - identifier: i.identifier.clone(), - info: i.info.clone(), - }, - })) -} |