aboutsummaryrefslogtreecommitdiff
path: root/server/src/ui/node.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/ui/node.rs')
-rw-r--r--server/src/ui/node.rs44
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)))
}