diff options
Diffstat (limited to 'server/src/ui/node.rs')
| -rw-r--r-- | server/src/ui/node.rs | 44 |
1 files changed, 7 insertions, 37 deletions
diff --git a/server/src/ui/node.rs b/server/src/ui/node.rs index 85beac6..cf5c793 100644 --- a/server/src/ui/node.rs +++ b/server/src/ui/node.rs @@ -5,42 +5,12 @@ */ use super::error::MyResult; use crate::request_info::RequestInfo; -use rocket::{Either, get, response::content::RawHtml, serde::json::Json}; +use jellycommon::jellyobject::Object; +use jellyui::render_view; +use rocket::{get, response::content::RawHtml}; -#[get("/n/<id>?<parents>&<children>&<filter..>")] -pub async fn r_node( - ri: RequestInfo<'_>, - id: A<NodeID>, - filter: Option<ANodeFilterSort>, - parents: bool, - children: bool, -) -> MyResult<Either<RawHtml<String>, Json<ApiNodeResponse>>> { - let filter: Option<NodeFilterSort> = filter.map(Into::into); - let filter = filter.unwrap_or_default(); - - let r = get_node( - &ri.session, - id.0, - !ri.accept.is_json() || children, - !ri.accept.is_json() || parents, - filter.clone(), - )?; - - Ok(if ri.accept.is_json() { - Either::Right(Json(r)) - } else { - Either::Left(RawHtml(render_page( - &NodePage { - node: &r.node, - udata: &r.userdata, - children: &r.children, - parents: &r.parents, - similar: &[], - filter: &filter, - lang: &ri.lang, - player: false, - }, - ri.render_info(), - ))) - }) +#[get("/n/<slug>")] +pub fn r_node(ri: RequestInfo<'_>, slug: &str) -> MyResult<RawHtml<String>> { + ri.require_user()?; + Ok(RawHtml(render_view(ri.render_info(), Object::EMPTY))) } |