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