Skip to main content

dhan_rs/api/
statements.rs

1//! Statement endpoints — Ledger Report, Trade History.
2
3use crate::client::DhanClient;
4use crate::error::Result;
5use crate::types::statements::*;
6
7impl DhanClient {
8    /// Retrieve Trading Account Ledger Report for a date range.
9    ///
10    /// Dates should be in `YYYY-MM-DD` format.
11    ///
12    /// **Endpoint:** `GET /v2/ledger?from-date={from}&to-date={to}`
13    pub async fn get_ledger(&self, from_date: &str, to_date: &str) -> Result<Vec<LedgerEntry>> {
14        let path = format!("/v2/ledger?from-date={from_date}&to-date={to_date}");
15        self.get(&path).await
16    }
17
18    /// Retrieve historical trade data for a date range.
19    ///
20    /// Dates should be in `YYYY-MM-DD` format. Use `page = 0` as default.
21    /// The response is paginated.
22    ///
23    /// **Endpoint:** `GET /v2/trades/{from-date}/{to-date}/{page}`
24    pub async fn get_trade_history(
25        &self,
26        from_date: &str,
27        to_date: &str,
28        page: u32,
29    ) -> Result<Vec<TradeHistoryEntry>> {
30        let path = format!("/v2/trades/{from_date}/{to_date}/{page}");
31        self.get(&path).await
32    }
33}