deriv_api/api/
subscription_calls.rs1
2use crate::client::DerivClient;
4use crate::error::Result;
5use deriv_api_schema::*;
6use crate::subscription::Subscription;
7
8impl DerivClient {
9
10pub async fn subscribe_p_2_p_order_create(&self, request: deriv_api_schema::P2pOrderCreateRequest) -> Result<(deriv_api_schema::P2pOrderCreateResponse, Subscription<deriv_api_schema::P2pOrderInfoResponse>)> {
12 let mut request = request;
13 request.subscribe = Some(1);
14 self.create_subscription(&mut request, "p2p_order").await
15}
16
17pub async fn subscribe_transaction(&self, request: deriv_api_schema::TransactionRequest) -> Result<(deriv_api_schema::TransactionResponse, Subscription<deriv_api_schema::TransactionResponse>)> {
19 let mut request = request;
20 request.subscribe = 1;
21 self.create_subscription(&mut request, "transaction").await
22}
23
24pub async fn subscribe_ticks_batch(&self, request: deriv_api_schema::TicksBatchRequest) -> Result<(deriv_api_schema::TicksBatchResponse, Subscription<deriv_api_schema::TicksBatchResponse>)> {
26 let mut request = request;
27 request.subscribe = Some(1);
28 self.create_subscription(&mut request, "tick").await
29}
30
31pub async fn subscribe_ticks(&self, request: deriv_api_schema::TicksRequest) -> Result<(deriv_api_schema::TicksResponse, Subscription<deriv_api_schema::TicksResponse>)> {
33 let mut request = request;
34 request.subscribe = Some(1);
35 self.create_subscription(&mut request, "tick").await
36}
37
38pub async fn subscribe_p_2_p_advert_info(&self, request: deriv_api_schema::P2pAdvertInfoRequest) -> Result<(deriv_api_schema::P2pAdvertInfoResponse, Subscription<deriv_api_schema::P2pAdvertInfoResponse>)> {
40 let mut request = request;
41 request.subscribe = Some(1);
42 self.create_subscription(&mut request, "p2p_advert").await
43}
44
45pub async fn subscribe_p_2_p_settings(&self, request: deriv_api_schema::P2pSettingsRequest) -> Result<(deriv_api_schema::P2pSettingsResponse, Subscription<deriv_api_schema::P2pSettingsResponse>)> {
47 let mut request = request;
48 request.subscribe = Some(1);
49 self.create_subscription(&mut request, "p2p_settings").await
50}
51
52pub async fn subscribe_p_2_p_order_list(&self, request: deriv_api_schema::P2pOrderListRequest) -> Result<(deriv_api_schema::P2pOrderListResponse, Subscription<deriv_api_schema::P2pOrderInfoResponse>)> {
54 let mut request = request;
55 request.subscribe = Some(1);
56 self.create_subscription(&mut request, "p2p_order").await
57}
58
59pub async fn subscribe_website_status(&self, request: deriv_api_schema::WebsiteStatusRequest) -> Result<(deriv_api_schema::WebsiteStatusResponse, Subscription<deriv_api_schema::WebsiteStatusResponse>)> {
61 let mut request = request;
62 request.subscribe = Some(deriv_api_schema::Subscribe::Value1);
63 self.create_subscription(&mut request, "website_status").await
64}
65
66pub async fn subscribe_p_2_p_advertiser_info(&self, request: deriv_api_schema::P2pAdvertiserInfoRequest) -> Result<(deriv_api_schema::P2pAdvertiserInfoResponse, Subscription<deriv_api_schema::P2pAdvertiserInfoResponse>)> {
68 let mut request = request;
69 request.subscribe = Some(1);
70 self.create_subscription(&mut request, "p2p_advertiser").await
71}
72
73pub async fn subscribe_balance(&self, request: deriv_api_schema::BalanceRequest) -> Result<(deriv_api_schema::BalanceResponse, Subscription<deriv_api_schema::BalanceResponse>)> {
75 let mut request = request;
76 request.subscribe = Some(deriv_api_schema::Subscribe::Value1);
77 self.create_subscription(&mut request, "balance").await
78}
79
80pub async fn subscribe_p_2_p_order_info(&self, request: deriv_api_schema::P2pOrderInfoRequest) -> Result<(deriv_api_schema::P2pOrderInfoResponse, Subscription<deriv_api_schema::P2pOrderInfoResponse>)> {
82 let mut request = request;
83 request.subscribe = Some(1);
84 self.create_subscription(&mut request, "p2p_order").await
85}
86
87pub async fn subscribe_crypto_estimations(&self, request: deriv_api_schema::CryptoEstimationsRequest) -> Result<(deriv_api_schema::CryptoEstimations, Subscription<deriv_api_schema::CryptoEstimations>)> {
89 let mut request = request;
90 request.subscribe = Some(1);
91 self.create_subscription(&mut request, "crypto_estimations").await
92}
93
94pub async fn subscribe_proposal(&self, request: deriv_api_schema::ProposalRequest) -> Result<(deriv_api_schema::ProposalResponse, Subscription<deriv_api_schema::ProposalResponse>)> {
96 let mut request = request;
97 request.subscribe = Some("1".to_string());
98 self.create_subscription(&mut request, "proposal").await
99}
100
101pub async fn subscribe_ticks_history(&self, request: deriv_api_schema::TicksHistoryRequest) -> Result<(deriv_api_schema::TicksHistoryResponse, Subscription<deriv_api_schema::TicksHistoryResponse>)> {
103 let mut request = request;
104 request.subscribe = Some(1);
105 let msg_type = if let Some(style) = request.style.as_ref() {
106 match style {
107 deriv_api_schema::Style::Candles => "candles",
108 _ => "history"
109 }
110 } else {
111 "history"
112 };
113 self.create_subscription(&mut request, msg_type).await
114}
115
116pub async fn subscribe_buy(&self, request: deriv_api_schema::BuyRequest) -> Result<(deriv_api_schema::BuyResponse, Subscription<deriv_api_schema::ProposalOpenContractResponse>)> {
118 let mut request = request;
119 request.subscribe = Some(1);
120 self.create_subscription(&mut request, "proposal_open_contract").await
121}
122
123pub async fn subscribe_proposal_open_contract(&self, request: deriv_api_schema::ProposalOpenContractRequest) -> Result<(deriv_api_schema::ProposalOpenContractResponse, Subscription<deriv_api_schema::ProposalOpenContractResponse>)> {
125 let mut request = request;
126 request.subscribe = Some(1);
127 self.create_subscription(&mut request, "proposal_open_contract").await
128}
129
130pub async fn subscribe_exchange_rates(&self, request: deriv_api_schema::ExchangeRatesRequest) -> Result<(deriv_api_schema::ExchangeRatesResponse, Subscription<deriv_api_schema::ExchangeRatesResponse>)> {
132 let mut request = request;
133 request.subscribe = Some(1);
134 self.create_subscription(&mut request, "exchange_rate").await
135}
136
137pub async fn subscribe_p_2_p_advertiser_create(&self, request: deriv_api_schema::P2pAdvertiserCreateRequest) -> Result<(deriv_api_schema::P2pAdvertiserCreateResponse, Subscription<deriv_api_schema::P2pAdvertInfoResponse>)> {
139 let mut request = request;
140 request.subscribe = Some(1);
141 self.create_subscription(&mut request, "p2p_advertiser").await
142}
143}