use super::Query;
use crate::error::Result;
use crate::request::{ApiClient, ApiResponse, CryptoType};
use serde_json::json;
impl ApiClient {
pub async fn api(&self, query: &Query) -> Result<ApiResponse> {
let uri = query.get_or("uri", "");
let data_str = query.get_or("data", "{}");
let data: serde_json::Value = serde_json::from_str(&data_str).unwrap_or_else(|_| json!({}));
let crypto_str = query.get_or("crypto", "");
let crypto = CryptoType::from(crypto_str.as_str());
self.request(&uri, data, query.to_option(crypto)).await
}
}