diff options
Diffstat (limited to 'server/src/ui/search.rs')
-rw-r--r-- | server/src/ui/search.rs | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/server/src/ui/search.rs b/server/src/ui/search.rs index e4afdd8..1812130 100644 --- a/server/src/ui/search.rs +++ b/server/src/ui/search.rs @@ -4,33 +4,24 @@ Copyright (C) 2025 metamuffin <metamuffin.org> */ use super::error::MyResult; -use crate::helper::{accept::AcceptJson, language::AcceptLanguage, A}; +use crate::helper::RequestInfo; use anyhow::anyhow; use jellycommon::api::ApiSearchResponse; -use jellyimport::is_importing; -use jellylogic::{search::search, session::Session}; -use jellyui::{ - render_page, - scaffold::{RenderInfo, SessionInfo}, - search::SearchPage, -}; +use jellylogic::search::search; +use jellyui::{render_page, search::SearchPage}; use rocket::{get, response::content::RawHtml, serde::json::Json, Either}; #[get("/search?<query>&<page>")] pub async fn r_search<'a>( - session: A<Session>, - aj: AcceptJson, + ri: RequestInfo, query: Option<&str>, page: Option<usize>, - lang: AcceptLanguage, ) -> MyResult<Either<RawHtml<String>, Json<ApiSearchResponse>>> { - let AcceptLanguage(lang) = lang; - let r = query - .map(|query| search(&session.0, query, page)) + .map(|query| search(&ri.session, query, page)) .transpose()?; - Ok(if *aj { + Ok(if ri.accept.is_json() { let Some(r) = r else { Err(anyhow!("no query"))? }; @@ -38,17 +29,11 @@ pub async fn r_search<'a>( } else { Either::Left(RawHtml(render_page( &SearchPage { - lang: &lang, + lang: &ri.lang, query: &query.map(|s| s.to_string()), r, }, - RenderInfo { - importing: is_importing(), - session: Some(SessionInfo { - user: session.0.user, - }), - }, - lang, + ri.render_info(), ))) }) } |