gateio_rs/api/spot/
cancel_batch_orders.rs1use crate::http::{Credentials, Method, request::Request};
2use serde::Serialize;
3
4#[derive(Serialize)]
6pub struct CancelOrderRequest {
7 pub id: String,
9 pub currency_pair: String,
11}
12
13pub struct CancelBatchOrders {
15 pub orders: Vec<CancelOrderRequest>,
17 pub x_gate_exp_time: Option<u128>,
19 pub credentials: Option<Credentials>,
21}
22
23impl CancelBatchOrders {
24 pub fn new(orders: Vec<CancelOrderRequest>) -> Self {
26 Self {
27 orders,
28 x_gate_exp_time: None,
29 credentials: None,
30 }
31 }
32
33 pub fn x_gate_exp_time(mut self, x_gate_exp_time: u128) -> Self {
35 self.x_gate_exp_time = Some(x_gate_exp_time);
36 self
37 }
38
39 pub fn credentials(mut self, creds: Credentials) -> Self {
41 self.credentials = Some(creds);
42 self
43 }
44}
45
46impl From<CancelBatchOrders> for Request {
47 fn from(request: CancelBatchOrders) -> Request {
48 let params = Vec::new();
49 let payload = serde_json::to_string(&request.orders).unwrap();
50
51 Request {
52 method: Method::Post,
53 path: "/api/v4/spot/cancel_batch_orders".into(),
54 params,
55 payload,
56 x_gate_exp_time: request.x_gate_exp_time,
57 credentials: request.credentials,
58 sign: true,
59 }
60 }
61}