diff options
author | Bryan Newbold <bnewbold@archive.org> | 2020-08-22 15:41:49 -0700 |
---|---|---|
committer | Bryan Newbold <bnewbold@archive.org> | 2020-08-22 15:41:49 -0700 |
commit | bb552c9d0060cf49e187d1b06460a838ef19828d (patch) | |
tree | a1cb02c57a73e883a863f0520f435da207d4715f | |
parent | 754c2fa6b875b132ca39093678549b620e190817 (diff) | |
download | es-public-proxy-bb552c9d0060cf49e187d1b06460a838ef19828d.tar.gz es-public-proxy-bb552c9d0060cf49e187d1b06460a838ef19828d.zip |
start on test framework and query JSON parser
-rw-r--r-- | src/lib.rs | 35 | ||||
-rw-r--r-- | tests/files/GET_uri_search.txt | 1 | ||||
-rw-r--r-- | tests/parse_es_requests.rs | 4 |
3 files changed, 40 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..1ba6207 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,35 @@ + +use serde::{Serialize, Deserialize}; + +#[derive(Serialize, Deserialize, Debug)] +pub struct ApiRequest { + pub method: String, + pub path_and_query: String, + pub body: Option<ApiBody>, +} + +#[derive(Serialize, Deserialize, Debug)] +pub struct ApiBody { + pub query: Option<ApiQuery>, + pub from: Option<u32>, + pub size: Option<u32>, + pub sort: Option<String>, // XXX + pub slice: Option<String>, // XXX +} + +#[derive(Serialize, Deserialize, Debug)] +pub enum ApiQuery { + #[serde(rename = "match")] + Match(MatchQuery), +} + +#[derive(Serialize, Deserialize, Debug)] +pub struct MatchQuery { + message: QueryField, +} + +#[derive(Serialize, Deserialize, Debug)] +pub struct QueryField{ + query: String, + fuzziness: Option<String>, +} diff --git a/tests/files/GET_uri_search.txt b/tests/files/GET_uri_search.txt new file mode 100644 index 0000000..e5e0567 --- /dev/null +++ b/tests/files/GET_uri_search.txt @@ -0,0 +1 @@ +GET /my-index-000001/_search?q=user.id:kimchy diff --git a/tests/parse_es_requests.rs b/tests/parse_es_requests.rs index e918da9..01ea64a 100644 --- a/tests/parse_es_requests.rs +++ b/tests/parse_es_requests.rs @@ -1,4 +1,6 @@ +use es_public_proxy::ApiBody; + mod common; #[test] @@ -13,4 +15,6 @@ fn basic_parse() { let request = common::load_request("GET_search"); assert_eq!(request.method, "GET"); assert_eq!(request.path_and_query, "/_search"); + + let thing: ApiBody = serde_json::from_str(&request.body.unwrap()).unwrap(); } |