1use super::Query;
2use crate::error::Result;
3use crate::request::{ApiClient, ApiResponse, CryptoType};
6use serde_json::json;
7
8impl ApiClient {
9 pub async fn api(&self, query: &Query) -> Result<ApiResponse> {
12 let uri = query.get_or("uri", "");
13 let data_str = query.get_or("data", "{}");
14 let data: serde_json::Value = serde_json::from_str(&data_str).unwrap_or_else(|_| json!({}));
15 let crypto_str = query.get_or("crypto", "");
16 let crypto = CryptoType::from(crypto_str.as_str());
17 self.request(&uri, data, query.to_option(crypto)).await
18 }
19}