1use crate::Error;
4use crate::api::trade::{AmendOrderRequest, CancelOrderRequest, PlaceOrderRequest};
5use crate::ws::client::OkxWs;
6use crate::ws::conn::WsConnector;
7use crate::ws::request::MassCancelRequest;
8
9impl<C: WsConnector> OkxWs<C> {
10 pub async fn place_order_ws(
14 &mut self,
15 id: impl Into<String>,
16 request: &PlaceOrderRequest<'_>,
17 ) -> Result<(), Error> {
18 self.send_request(id, "order", std::slice::from_ref(request))
19 .await
20 }
21
22 pub async fn place_orders_ws(
26 &mut self,
27 id: impl Into<String>,
28 requests: &[PlaceOrderRequest<'_>],
29 ) -> Result<(), Error> {
30 self.send_request(id, "batch-orders", requests).await
31 }
32
33 pub async fn cancel_order_ws(
37 &mut self,
38 id: impl Into<String>,
39 request: &CancelOrderRequest<'_>,
40 ) -> Result<(), Error> {
41 self.send_request(id, "cancel-order", std::slice::from_ref(request))
42 .await
43 }
44
45 pub async fn cancel_orders_ws(
49 &mut self,
50 id: impl Into<String>,
51 requests: &[CancelOrderRequest<'_>],
52 ) -> Result<(), Error> {
53 self.send_request(id, "batch-cancel-orders", requests).await
54 }
55
56 pub async fn amend_order_ws(
60 &mut self,
61 id: impl Into<String>,
62 request: &AmendOrderRequest<'_>,
63 ) -> Result<(), Error> {
64 self.send_request(id, "amend-order", std::slice::from_ref(request))
65 .await
66 }
67
68 pub async fn amend_orders_ws(
72 &mut self,
73 id: impl Into<String>,
74 requests: &[AmendOrderRequest<'_>],
75 ) -> Result<(), Error> {
76 self.send_request(id, "batch-amend-orders", requests).await
77 }
78
79 pub async fn mass_cancel_ws(
83 &mut self,
84 id: impl Into<String>,
85 request: &MassCancelRequest,
86 ) -> Result<(), Error> {
87 self.send_request_with_expiry(id, "mass-cancel", None, std::slice::from_ref(request))
88 .await
89 }
90}