1use crate::client::DhanClient;
4use crate::error::Result;
5use crate::types::orders::*;
6
7impl DhanClient {
8 pub async fn place_order(&self, req: &PlaceOrderRequest) -> Result<OrderResponse> {
12 self.post("/v2/orders", req).await
13 }
14
15 pub async fn modify_order(
19 &self,
20 order_id: &str,
21 req: &ModifyOrderRequest,
22 ) -> Result<OrderResponse> {
23 self.put(&format!("/v2/orders/{order_id}"), req).await
24 }
25
26 pub async fn cancel_order(&self, order_id: &str) -> Result<OrderResponse> {
30 self.delete(&format!("/v2/orders/{order_id}")).await
31 }
32
33 pub async fn slice_order(&self, req: &PlaceOrderRequest) -> Result<Vec<OrderResponse>> {
37 self.post("/v2/orders/slicing", req).await
38 }
39
40 pub async fn get_orders(&self) -> Result<Vec<OrderDetail>> {
44 self.get("/v2/orders").await
45 }
46
47 pub async fn get_order(&self, order_id: &str) -> Result<OrderDetail> {
51 self.get(&format!("/v2/orders/{order_id}")).await
52 }
53
54 pub async fn get_order_by_correlation_id(&self, correlation_id: &str) -> Result<OrderDetail> {
58 self.get(&format!("/v2/orders/external/{correlation_id}"))
59 .await
60 }
61
62 pub async fn get_trades(&self) -> Result<Vec<TradeDetail>> {
66 self.get("/v2/trades").await
67 }
68
69 pub async fn get_trades_for_order(&self, order_id: &str) -> Result<Vec<TradeDetail>> {
73 self.get(&format!("/v2/trades/{order_id}")).await
74 }
75}