use serde::{Deserialize, Serialize};
use crate::error::TigerError;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ApiResponse {
pub code: i32,
pub message: String,
pub data: Option<serde_json::Value>,
pub timestamp: Option<i64>,
}
pub fn parse_api_response(body: &[u8]) -> Result<ApiResponse, TigerError> {
let resp: ApiResponse = serde_json::from_slice(body)
.map_err(|e| TigerError::Config(format!("解析响应 JSON 失败: {}", e)))?;
if resp.code != 0 {
return Err(TigerError::Api {
code: resp.code,
message: resp.message,
});
}
Ok(resp)
}
#[cfg(test)]
mod tests;