1use crate::payload;
17use crate::proto::common::*;
18use crate::{client::Client, error::Error};
19
20impl Client {
21 pub async fn symbols_list(
35 &self,
36 ctid_trader_account_id: i64,
37 include_archived: bool,
38 ) -> Result<ProtoOaSymbolsListRes, Error> {
39 let req = ProtoOaSymbolsListReq {
40 payload_type: Some(payload::OA_SYMBOLS_LIST_REQ as i32),
41 ctid_trader_account_id,
42 include_archived_symbols: Some(include_archived),
43 };
44 self.command(
45 payload::OA_SYMBOLS_LIST_REQ,
46 req,
47 payload::OA_SYMBOLS_LIST_RES,
48 )
49 .await
50 }
51
52 pub async fn subscribe_symbol(
63 &self,
64 symbol_id: Vec<i64>,
65 ctid_trader_account_id: i64,
66 ) -> Result<ProtoOaSubscribeSpotsRes, Error> {
67 let req = ProtoOaSubscribeSpotsReq {
68 symbol_id,
69 subscribe_to_spot_timestamp: Some(true),
70 payload_type: Some(crate::payload::OA_SUBSCRIBE_SPOTS_REQ as i32),
71 ctid_trader_account_id,
72 };
73
74 self.command(
75 crate::payload::OA_SUBSCRIBE_SPOTS_REQ,
76 req,
77 crate::payload::OA_SUBSCRIBE_SPOTS_RES,
78 )
79 .await
80 }
81
82 pub async fn symbol_by_id(
95 &self,
96 symbol_id: Vec<i64>,
97 ctid_trader_account_id: i64,
98 ) -> Result<ProtoOaSymbolByIdReq, Error> {
99 let req = ProtoOaSymbolByIdReq {
100 ctid_trader_account_id,
101 symbol_id,
102 payload_type: Some(crate::payload::OA_SYMBOL_BY_ID_REQ as i32),
103 };
104
105 self.command(
106 crate::payload::OA_SYMBOL_BY_ID_REQ,
107 req,
108 crate::payload::OA_SYMBOL_BY_ID_RES,
109 )
110 .await
111 }
112}
113
114#[cfg(test)]
115mod tests {
116
117 #[tokio::test]
118 async fn test() {}
119}