diff options
| author | jakka <jakka@jakka.su> | 2025-09-17 22:37:25 +0300 |
|---|---|---|
| committer | jakka <jakka@jakka.su> | 2025-09-17 22:37:25 +0300 |
| commit | e67153693983c8fff3d45f22e3fe8cd3e3a00418 (patch) | |
| tree | 082d0c97437597dd57ce9f475fed9bdfa75cd774 /src/client.rs | |
| parent | 5187775550dee2a2719339564c778df64a8538eb (diff) | |
fixed get_service api reponse parsing
Diffstat (limited to 'src/client.rs')
| -rw-r--r-- | src/client.rs | 29 |
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>> { |
