diff --git a/Cargo.lock b/Cargo.lock index dfa672a..35b5cde 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -22,7 +22,7 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "loadstar" -version = "0.0.6" +version = "0.0.5" dependencies = [ "tiny_http", ] diff --git a/Cargo.toml b/Cargo.toml index 633a256..d234736 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "loadstar" description = "A simple web framework for rust" repository = "https://git.kjan.de/jank/loadstar" -version = "0.0.6" +version = "0.0.5" license = "GPL-3.0-only" edition = "2021" diff --git a/src/entities/request.rs b/src/entities/request.rs index 147f218..f0aedc9 100644 --- a/src/entities/request.rs +++ b/src/entities/request.rs @@ -1,5 +1,3 @@ -use std::collections::HashMap; - use tiny_http::Request; pub trait Url { @@ -12,51 +10,6 @@ impl Url for Request { } } -pub trait Parameters { - fn get_post_parameters(&mut self) -> HashMap; - fn get_get_parameters(&mut self) -> Option>; -} - -impl Parameters for Request { - fn get_post_parameters(&mut self) -> HashMap { - let mut content = String::new(); - self.as_reader().read_to_string(&mut content).unwrap(); - - let mut key_value_pairs = HashMap::new(); - - let parts = content.split("&"); - - for part in parts { - let mut key_value = part.split("="); - - key_value_pairs.insert(key_value.next().unwrap().to_string(), key_value.next().unwrap().to_string()); - } - - key_value_pairs - } - - fn get_get_parameters(&mut self) -> Option> { - let content = self.url().split("?").nth(1); - - if content.is_none() { - return None; - } - - let content = content.unwrap(); - - let mut key_value_pairs = HashMap::new(); - - let parts = content.split("&"); - for part in parts { - let mut key_value = part.split("="); - - key_value_pairs.insert(key_value.next().unwrap().to_string(), key_value.next().unwrap().to_string()); - } - - Some(key_value_pairs) - } -} - #[cfg(test)] mod tests { use crate::entities::request::*; @@ -74,40 +27,4 @@ mod tests { assert_eq!(request2.get_url_without_parameters(), "/test2"); } - - #[test] - fn test_get_post_parameters() { - let test_request = TestRequest::new(); - let test_request = test_request.with_body("a=b&c=d"); - - let actual = Request::from(test_request).get_post_parameters(); - let mut expected = HashMap::new(); - expected.insert("a".to_string(), "b".to_string()); - expected.insert("c".to_string(), "d".to_string()); - - assert_eq!(actual, expected); - } - - #[test] - fn test_get_get_parameters_with_no_get_parameters() { - let test_request = TestRequest::new(); - let test_request = test_request.with_path("/test"); - - let actual = Request::from(test_request).get_get_parameters(); - - assert_eq!(actual, None); - } - - #[test] - fn test_get_get_parameters() { - let test_request = TestRequest::new(); - let test_request = test_request.with_path("/test?a=b&c=d"); - - let actual = Request::from(test_request).get_get_parameters(); - let mut expected = HashMap::new(); - expected.insert("a".to_string(), "b".to_string()); - expected.insert("c".to_string(), "d".to_string()); - - assert_eq!(actual, Some(expected)); - } }