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()); } }