aboutsummaryrefslogtreecommitdiff
path: root/server/src/ui/items.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/ui/items.rs')
-rw-r--r--server/src/ui/items.rs32
1 files changed, 8 insertions, 24 deletions
diff --git a/server/src/ui/items.rs b/server/src/ui/items.rs
index 1ac2c09..915963c 100644
--- a/server/src/ui/items.rs
+++ b/server/src/ui/items.rs
@@ -4,46 +4,30 @@
Copyright (C) 2025 metamuffin <metamuffin.org>
*/
use super::error::MyError;
-use crate::helper::{accept::AcceptJson, language::AcceptLanguage, A};
+use crate::helper::{accept::Accept, RequestInfo, A};
use jellycommon::api::{ApiItemsResponse, NodeFilterSort};
-use jellyimport::is_importing;
-use jellylogic::{items::all_items, session::Session};
-use jellyui::{
- items::ItemsPage,
- render_page,
- scaffold::{RenderInfo, SessionInfo},
-};
+use jellylogic::items::all_items;
+use jellyui::{items::ItemsPage, render_page};
use rocket::{get, response::content::RawHtml, serde::json::Json, Either};
#[get("/items?<page>&<filter..>")]
pub fn r_items(
- session: A<Session>,
- aj: AcceptJson,
+ ri: RequestInfo,
page: Option<usize>,
filter: A<NodeFilterSort>,
- lang: AcceptLanguage,
) -> Result<Either<RawHtml<String>, Json<ApiItemsResponse>>, MyError> {
- let AcceptLanguage(lang) = lang;
-
- let r = all_items(&session.0, page, filter.0.clone())?;
-
- Ok(if *aj {
+ let r = all_items(&ri.session, page, filter.0.clone())?;
+ Ok(if matches!(ri.accept, Accept::Json) {
Either::Right(Json(r))
} else {
Either::Left(RawHtml(render_page(
&ItemsPage {
- lang: &lang,
+ lang: &ri.lang,
r,
filter: &filter.0,
page: page.unwrap_or(0),
},
- RenderInfo {
- importing: is_importing(),
- session: Some(SessionInfo {
- user: session.0.user,
- }),
- },
- lang,
+ ri.render_info(),
)))
})
}