Skip to content

Commit d5df7e4

Browse files
Emilgardissyphar
authored andcommitted
simplify query building
1 parent 2d5d156 commit d5df7e4

File tree

1 file changed

+4
-9
lines changed

1 file changed

+4
-9
lines changed

src/web/releases.rs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,7 @@ impl_webpage! {
568568

569569
pub fn search_handler(req: &mut Request) -> IronResult<Response> {
570570
let url = req.url.as_ref();
571-
let params: HashMap<_, _> = url.query_pairs().collect();
571+
let mut params: HashMap<_, _> = url.query_pairs().collect();
572572
let query = params
573573
.get("query")
574574
.map(|q| q.to_string())
@@ -578,7 +578,7 @@ pub fn search_handler(req: &mut Request) -> IronResult<Response> {
578578

579579
// check if I am feeling lucky button pressed and redirect user to crate page
580580
// if there is a match. Also check for paths to items within crates.
581-
if params.contains_key("i-am-feeling-lucky") || query.contains("::") {
581+
if params.remove("i-am-feeling-lucky").is_some() || query.contains("::") {
582582
// redirect to a random crate if query is empty
583583
if query.is_empty() {
584584
return redirect_to_random_crate(req, &mut conn);
@@ -594,17 +594,12 @@ pub fn search_handler(req: &mut Request) -> IronResult<Response> {
594594
None => query.clone(),
595595
};
596596

597-
queries.extend(
598-
params
599-
.iter()
600-
.filter(|(k, _)| !matches!(k.as_ref(), "i-am-feeling-lucky" | "query"))
601-
.map(|(k, v)| (k.as_ref(), v.as_ref())),
602-
);
603-
604597
// since we never pass a version into `match_version` here, we'll never get
605598
// `MatchVersion::Exact`, so the distinction between `Exact` and `Semver` doesn't
606599
// matter
607600
if let Ok(matchver) = match_version(&mut conn, &krate, None) {
601+
params.remove("query");
602+
queries.extend(params.iter().map(|(k, v)| (k.as_ref(), v.as_ref())));
608603
let (version, _) = matchver.version.into_parts();
609604
let krate = matchver.corrected_name.unwrap_or(krate);
610605

0 commit comments

Comments
 (0)