nash_protocol/protocol/cancel_orders/
request.rs1use super::types::CancelOrdersRequest;
2use super::super::signer::Signer;
3use crate::protocol::multi_request::DynamicQueryBody;
4use std::collections::HashMap;
5
6impl CancelOrdersRequest {
7 pub fn make_query(
8 &self,
9 signer: &Signer,
10 ) -> DynamicQueryBody {
11 let mut variables = HashMap::new();
12 let mut params = String::new();
13 let mut calls = String::new();
14 for (index, variable) in self.requests.iter().enumerate() {
15 let variable = variable.make_variables(signer);
16
17 let payload = format!("payload{}", index);
19 let signature = format!("signature{}", index);
20 params = if index == 0 { params } else { format!("{}, ", params)};
21 params = format!("{}${}: CancelOrderParams!, ${}: Signature!", params, payload, signature);
22 calls = format!(r#"
23 {}
24 response{}: cancelOrder(payload: ${}, signature: ${}) {{
25 orderId
26 }}
27 "#, calls, index, payload, signature);
28 variables.insert(payload, serde_json::to_value(variable.payload).unwrap());
29 variables.insert(signature, serde_json::to_value(variable.signature).unwrap());
30 }
31 DynamicQueryBody {
32 variables,
33 operation_name: "CancelOrder",
34 query: format!(r#"
35 mutation CancelOrder({}) {{
36 {}
37 }}
38 "#, params, calls)
39 }
40 }
41}