From 3b37ea6c8beeaa57754df698223e76c59e15b4f7 Mon Sep 17 00:00:00 2001
From: Nutomic <me@nutomic.com>
Date: Sat, 21 Aug 2021 13:36:33 +0000
Subject: [PATCH] Dont append ? to url when cleaning it (#1716)

---
 crates/utils/src/utils.rs | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/crates/utils/src/utils.rs b/crates/utils/src/utils.rs
index 1254aff0..0fb1f788 100644
--- a/crates/utils/src/utils.rs
+++ b/crates/utils/src/utils.rs
@@ -149,12 +149,14 @@ pub fn get_ip(conn_info: &ConnectionInfo) -> IpAddr {
 }
 
 pub fn clean_url_params(mut url: Url) -> Url {
-  let new_query = url
-    .query_pairs()
-    .filter(|q| !CLEAN_URL_PARAMS_REGEX.is_match(&q.0))
-    .map(|q| format!("{}={}", q.0, q.1))
-    .join("&");
-  url.set_query(Some(&new_query));
+  if url.query().is_some() {
+    let new_query = url
+      .query_pairs()
+      .filter(|q| !CLEAN_URL_PARAMS_REGEX.is_match(&q.0))
+      .map(|q| format!("{}={}", q.0, q.1))
+      .join("&");
+    url.set_query(Some(&new_query));
+  }
   url
 }
 
@@ -169,5 +171,9 @@ mod tests {
     let cleaned = clean_url_params(url);
     let expected = Url::parse("https://example.com/path/123?username=randomuser&id=123").unwrap();
     assert_eq!(expected.to_string(), cleaned.to_string());
+
+    let url = Url::parse("https://example.com/path/123").unwrap();
+    let cleaned = clean_url_params(url.clone());
+    assert_eq!(url.to_string(), cleaned.to_string());
   }
 }
-- 
2.44.1