1use crate::client::{DhanClient, required_path_segment};
4use crate::error::{DhanError, Result};
5use crate::types::edis::*;
6
7impl DhanClient {
8 pub async fn generate_tpin(&self) -> Result<()> {
14 self.get_no_content("/v2/edis/tpin").await
15 }
16
17 pub async fn generate_edis_form(&self, req: &EdisFormRequest) -> Result<EdisFormResponse> {
21 self.post("/v2/edis/form", req).await
22 }
23
24 pub async fn generate_bulk_edis_form(
28 &self,
29 req: &EdisBulkFormRequest,
30 ) -> Result<EdisFormResponse> {
31 req.validate()
32 .map_err(|message| DhanError::InvalidArgument(message.into()))?;
33 self.post("/v2/edis/bulkform", req).await
34 }
35
36 pub async fn inquire_edis(&self, isin: &str) -> Result<EdisInquiry> {
42 let isin = required_path_segment("isin", isin)?;
43 self.get(&format!("/v2/edis/inquire/{isin}")).await
44 }
45}