1use super::Query;
2use crate::error::Result;
3use crate::request::{ApiClient, ApiResponse, CryptoType};
6use serde_json::json;
7
8impl ApiClient {
9 pub async fn search(&self, query: &Query) -> Result<ApiResponse> {
12 let search_type = query.get_or("type", "1").parse::<i64>().unwrap_or(1);
13
14 if search_type == 2000 {
15 let data = json!({
16 "keyword": query.get_or("keywords", ""),
17 "scene": "normal",
18 "limit": query.get_or("limit", "30").parse::<i64>().unwrap_or(30),
19 "offset": query.get_or("offset", "0").parse::<i64>().unwrap_or(0)
20 });
21 self.request(
22 "/api/search/voice/get",
23 data,
24 query.to_option(CryptoType::default()),
25 )
26 .await
27 } else {
28 let data = json!({
29 "s": query.get_or("keywords", ""),
30 "type": search_type,
31 "limit": query.get_or("limit", "30").parse::<i64>().unwrap_or(30),
32 "offset": query.get_or("offset", "0").parse::<i64>().unwrap_or(0)
33 });
34 self.request(
35 "/api/search/get",
36 data,
37 query.to_option(CryptoType::default()),
38 )
39 .await
40 }
41 }
42}