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.rs34
1 files changed, 10 insertions, 24 deletions
diff --git a/server/src/ui/node.rs b/server/src/ui/node.rs
index 0b1a92f..7085a5a 100644
--- a/server/src/ui/node.rs
+++ b/server/src/ui/node.rs
@@ -4,42 +4,34 @@
Copyright (C) 2025 metamuffin <metamuffin.org>
*/
use super::error::MyResult;
-use crate::helper::{accept::AcceptJson, language::AcceptLanguage, A};
+use crate::helper::{RequestInfo, A};
use jellycommon::{
api::{ApiNodeResponse, NodeFilterSort},
NodeID,
};
-use jellyimport::is_importing;
-use jellylogic::{node::get_node, session::Session};
-use jellyui::{
- node_page::NodePage,
- render_page,
- scaffold::{RenderInfo, SessionInfo},
-};
+use jellylogic::node::get_node;
+use jellyui::{node_page::NodePage, render_page};
use rocket::{get, response::content::RawHtml, serde::json::Json, Either};
#[get("/n/<id>?<parents>&<children>&<filter..>")]
pub async fn r_node<'a>(
- session: A<Session>,
+ ri: RequestInfo,
id: A<NodeID>,
- aj: AcceptJson,
filter: Option<A<NodeFilterSort>>,
- lang: AcceptLanguage,
parents: bool,
children: bool,
) -> MyResult<Either<RawHtml<String>, Json<ApiNodeResponse>>> {
- let AcceptLanguage(lang) = lang;
let filter = filter.unwrap_or_default();
let r = get_node(
- &session.0,
+ &ri.session,
id.0,
- !*aj || children,
- !*aj || parents,
+ !ri.accept.is_json() || children,
+ !ri.accept.is_json() || parents,
filter.0.clone(),
)?;
- Ok(if *aj {
+ Ok(if ri.accept.is_json() {
Either::Right(Json(r))
} else {
Either::Left(RawHtml(render_page(
@@ -50,16 +42,10 @@ pub async fn r_node<'a>(
parents: &r.parents,
similar: &[],
filter: &filter.0,
- lang: &lang,
+ lang: &ri.lang,
player: false,
},
- RenderInfo {
- importing: is_importing(),
- session: Some(SessionInfo {
- user: session.0.user,
- }),
- },
- lang,
+ ri.render_info(),
)))
})
}