Skip to main content

nil_client/client/
market.rs

1// Copyright (C) Call of Nil contributors
2// SPDX-License-Identifier: AGPL-3.0-only
3
4use super::Client;
5use crate::error::Result;
6use crate::http;
7use nil_payload::request::market::*;
8use nil_payload::response::market::*;
9
10impl Client {
11  /// Endpoint: `POST /buy-resources`
12  pub async fn buy_resources(&self, req: BuyResourcesRequest) -> Result<()> {
13    http::post("buy-resources")
14      .body(req)
15      .server(self.server)
16      .maybe_authorization(self.authorization.as_ref())
17      .circuit_breaker(self.circuit_breaker())
18      .user_agent(&self.user_agent)
19      .send()
20      .await
21  }
22
23  /// Endpoint: `PUT /get-market`
24  pub async fn get_market(&self, req: GetMarketRequest) -> Result<GetMarketResponse> {
25    http::json_put("get-market")
26      .body(req)
27      .server(self.server)
28      .circuit_breaker(self.circuit_breaker())
29      .retry(&self.retry)
30      .user_agent(&self.user_agent)
31      .send()
32      .await
33  }
34
35  /// Endpoint: `PUT /get-market-fee`
36  pub async fn get_market_fee(&self, req: GetMarketFeeRequest) -> Result<GetMarketFeeResponse> {
37    http::json_put("get-market-fee")
38      .body(req)
39      .server(self.server)
40      .circuit_breaker(self.circuit_breaker())
41      .retry(&self.retry)
42      .user_agent(&self.user_agent)
43      .send()
44      .await
45  }
46
47  /// Endpoint: `POST /sell-resources`
48  pub async fn sell_resources(&self, req: SellResourcesRequest) -> Result<()> {
49    http::post("sell-resources")
50      .body(req)
51      .server(self.server)
52      .maybe_authorization(self.authorization.as_ref())
53      .circuit_breaker(self.circuit_breaker())
54      .user_agent(&self.user_agent)
55      .send()
56      .await
57  }
58
59  /// Endpoint: `POST /send-resources`
60  pub async fn send_resources(&self, req: SendResourcesRequest) -> Result<()> {
61    http::post("send-resources")
62      .body(req)
63      .server(self.server)
64      .maybe_authorization(self.authorization.as_ref())
65      .circuit_breaker(self.circuit_breaker())
66      .user_agent(&self.user_agent)
67      .send()
68      .await
69  }
70}