Skip to main content

dhan_rs/api/
forever_order.rs

1//! Forever Order endpoints.
2
3use crate::client::DhanClient;
4use crate::error::Result;
5use crate::types::forever_order::*;
6use crate::types::orders::OrderResponse;
7
8impl DhanClient {
9    /// Create a new forever order.
10    ///
11    /// **Endpoint:** `POST /v2/forever/orders`
12    pub async fn create_forever_order(
13        &self,
14        req: &CreateForeverOrderRequest,
15    ) -> Result<OrderResponse> {
16        self.post("/v2/forever/orders", req).await
17    }
18
19    /// Modify an existing forever order.
20    ///
21    /// **Endpoint:** `PUT /v2/forever/orders/{order-id}`
22    pub async fn modify_forever_order(
23        &self,
24        order_id: &str,
25        req: &ModifyForeverOrderRequest,
26    ) -> Result<OrderResponse> {
27        self.put(&format!("/v2/forever/orders/{order_id}"), req)
28            .await
29    }
30
31    /// Delete a pending forever order.
32    ///
33    /// **Endpoint:** `DELETE /v2/forever/orders/{order-id}`
34    pub async fn delete_forever_order(&self, order_id: &str) -> Result<OrderResponse> {
35        self.delete(&format!("/v2/forever/orders/{order_id}")).await
36    }
37
38    /// Retrieve all existing forever orders.
39    ///
40    /// **Endpoint:** `GET /v2/forever/all`
41    pub async fn get_all_forever_orders(&self) -> Result<Vec<ForeverOrderDetail>> {
42        self.get("/v2/forever/all").await
43    }
44}