From f09101809ef0ca2f0416f289a641e0bba8942a55 Mon Sep 17 00:00:00 2001 From: Stephan Vedder Date: Thu, 16 Jan 2025 15:25:30 +0100 Subject: [PATCH] [web] Fix Includefield handling --- web/src/qido.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/web/src/qido.rs b/web/src/qido.rs index 32560082f..b7a2a08ec 100644 --- a/web/src/qido.rs +++ b/web/src/qido.rs @@ -13,7 +13,7 @@ pub struct QidoRequest { limit: Option, offset: Option, - includefields: Option, + includefields: Vec, fuzzymatching: Option, filters: Vec<(Tag, String)>, } @@ -25,7 +25,7 @@ impl QidoRequest { url, limit: None, offset: None, - includefields: None, + includefields: vec![], fuzzymatching: None, filters: vec![], } @@ -39,8 +39,15 @@ impl QidoRequest { if let Some(offset) = self.offset { query.push((String::from("offset"), offset.to_string())); } - if let Some(includefields) = &self.includefields { - query.push((String::from("includefields"), includefields.to_string())); + for include_field in self.includefields.iter() { + // Convert the tag to a radix string + let radix_string = format!( + "{:04x}{:04x}", + include_field.group(), + include_field.element() + ); + + query.push((String::from("includefield"), radix_string)); } for filter in self.filters.iter() { query.push((filter.0.to_string(), filter.1.clone())); @@ -103,14 +110,7 @@ impl QidoRequest { } pub fn with_includefields(self: &mut Self, includefields: Vec) -> &mut Self { - self.includefields = Some( - includefields - .iter() - .map(|tag| tag.to_string()) - .collect::>() - .join(","), - ); - + self.includefields = includefields; self }