summaryrefslogtreecommitdiff
path: root/src/client.rs
diff options
context:
space:
mode:
authorjakka <jakka@jakka.su>2025-09-17 22:37:25 +0300
committerjakka <jakka@jakka.su>2025-09-17 22:37:25 +0300
commite67153693983c8fff3d45f22e3fe8cd3e3a00418 (patch)
tree082d0c97437597dd57ce9f475fed9bdfa75cd774 /src/client.rs
parent5187775550dee2a2719339564c778df64a8538eb (diff)
fixed get_service api reponse parsing
Diffstat (limited to 'src/client.rs')
-rw-r--r--src/client.rs29
1 files changed, 17 insertions, 12 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>> {