summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client.rs29
-rw-r--r--src/tests.rs23
2 files changed, 37 insertions, 15 deletions
diff --git a/src/client.rs b/src/client.rs
index d9b2ed5..a8061e4 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -2,6 +2,7 @@ use std::path::PathBuf;
use async_trait::async_trait;
use reqwest::{Body, RequestBuilder};
+use serde_json::Value;
use tokio_util::codec::{BytesCodec, FramedRead};
use crate::{traits::*, types::*};
@@ -123,12 +124,14 @@ impl AccessManagement for HydrusClient {
req_url.push_str("get_service?service_name=");
req_url.push_str(&urlencoding::encode(name));
- Ok(self
- .set_get_request_key(&req_url)?
- .send()
- .await?
- .json::<Service>()
- .await?)
+ Ok(serde_json::from_value::<Service>(
+ self.set_get_request_key(&req_url)?
+ .send()
+ .await?
+ .json::<Value>()
+ .await?["service"]
+ .take(),
+ )?)
}
async fn get_service_key(&self, key: &str) -> Result<Service> {
@@ -136,12 +139,14 @@ impl AccessManagement for HydrusClient {
req_url.push_str("get_service?service_key=");
req_url.push_str(&urlencoding::encode(key));
- Ok(self
- .set_get_request_key(&req_url)?
- .send()
- .await?
- .json::<Service>()
- .await?)
+ Ok(serde_json::from_value::<Service>(
+ self.set_get_request_key(&req_url)?
+ .send()
+ .await?
+ .json::<Value>()
+ .await?["service"]
+ .take(),
+ )?)
}
async fn get_services(&self) -> Result<Vec<Service>> {
diff --git a/src/tests.rs b/src/tests.rs
index c98d59a..5e8d9a7 100644
--- a/src/tests.rs
+++ b/src/tests.rs
@@ -2,9 +2,26 @@ use crate::client::HydrusClient;
use crate::{traits::*, types::*};
#[tokio::test]
-async fn test_service_info() {
+async fn test_service_name_info() {
let mut client: HydrusClient = HydrusClient::new("http://127.0.0.1:51251/");
client.set_api_key("7ab7accf6cf12b2c6c30436cd8fe16361aee33679dbd90da279b5c22b33d622a");
- let res = client.get_service_name("all my files").await.unwrap();
- println!("{:?}", res);
+ let _ = client.get_service_name("all my files").await.unwrap();
+}
+
+#[tokio::test]
+async fn test_service_key_info() {
+ let mut client: HydrusClient = HydrusClient::new("http://127.0.0.1:51251/");
+ client.set_api_key("7ab7accf6cf12b2c6c30436cd8fe16361aee33679dbd90da279b5c22b33d622a");
+ let _ = client
+ .get_service_key("616c6c206c6f63616c206d65646961")
+ .await
+ .unwrap();
+}
+
+#[tokio::test]
+async fn test_get_services() {
+ let mut client: HydrusClient = HydrusClient::new("http://127.0.0.1:51251/");
+ client.set_api_key("7ab7accf6cf12b2c6c30436cd8fe16361aee33679dbd90da279b5c22b33d622a");
+ let res = client.get_services().await.unwrap();
+ assert!(!res.is_empty())
}