use serde::Deserialize;
use crate::client::AkShareClient;
use crate::error::{Error, Result};
#[derive(Debug, Deserialize)]
struct NafmiiResp {
rows: Option<Vec<serde_json::Value>>,
}
impl AkShareClient {
pub async fn bond_debt_nafmii(&self, page: u32) -> Result<Vec<serde_json::Value>> {
let resp: NafmiiResp = self
.post("http://zhuce.nafmii.org.cn/fans/publicQuery/releFileProjDataGrid")
.form(&[
("regFileName", ""),
("itemType", ""),
("startTime", ""),
("endTime", ""),
("entityName", ""),
("leadManager", ""),
("regPrdtType", ""),
("page", &page.to_string()),
("rows", "50"),
])
.send()
.await?
.json()
.await?;
let rows = resp.rows.unwrap_or_default();
if rows.is_empty() {
return Err(Error::not_found(format!(
"nafmii returned no data for page {page}"
)));
}
Ok(rows)
}
}