coinbase_mesh/apis/
account_api.rs1use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum AccountBalanceError {
22 Status500(models::Error),
23 UnknownValue(serde_json::Value),
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum AccountCoinsError {
30 Status500(models::Error),
31 UnknownValue(serde_json::Value),
32}
33
34
35pub async fn account_balance(configuration: &configuration::Configuration, account_balance_request: models::AccountBalanceRequest) -> Result<models::AccountBalanceResponse, Error<AccountBalanceError>> {
37 let local_var_configuration = configuration;
38
39 let local_var_client = &local_var_configuration.client;
40
41 let local_var_uri_str = format!("{}/account/balance", local_var_configuration.base_path);
42 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
43
44 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
45 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
46 }
47 local_var_req_builder = local_var_req_builder.json(&account_balance_request);
48
49 let local_var_req = local_var_req_builder.build()?;
50 let local_var_resp = local_var_client.execute(local_var_req).await?;
51
52 let local_var_status = local_var_resp.status();
53 let local_var_content = local_var_resp.text().await?;
54
55 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
56 serde_json::from_str(&local_var_content).map_err(Error::from)
57 } else {
58 let local_var_entity: Option<AccountBalanceError> = serde_json::from_str(&local_var_content).ok();
59 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
60 Err(Error::ResponseError(local_var_error))
61 }
62}
63
64pub async fn account_coins(configuration: &configuration::Configuration, account_coins_request: models::AccountCoinsRequest) -> Result<models::AccountCoinsResponse, Error<AccountCoinsError>> {
66 let local_var_configuration = configuration;
67
68 let local_var_client = &local_var_configuration.client;
69
70 let local_var_uri_str = format!("{}/account/coins", local_var_configuration.base_path);
71 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
72
73 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
74 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
75 }
76 local_var_req_builder = local_var_req_builder.json(&account_coins_request);
77
78 let local_var_req = local_var_req_builder.build()?;
79 let local_var_resp = local_var_client.execute(local_var_req).await?;
80
81 let local_var_status = local_var_resp.status();
82 let local_var_content = local_var_resp.text().await?;
83
84 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
85 serde_json::from_str(&local_var_content).map_err(Error::from)
86 } else {
87 let local_var_entity: Option<AccountCoinsError> = serde_json::from_str(&local_var_content).ok();
88 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
89 Err(Error::ResponseError(local_var_error))
90 }
91}
92