coinbase_mesh/apis/
block_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 BlockError {
22 Status500(models::Error),
23 UnknownValue(serde_json::Value),
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum BlockTransactionError {
30 Status500(models::Error),
31 UnknownValue(serde_json::Value),
32}
33
34
35pub async fn block(configuration: &configuration::Configuration, block_request: models::BlockRequest) -> Result<models::BlockResponse, Error<BlockError>> {
37 let local_var_configuration = configuration;
38
39 let local_var_client = &local_var_configuration.client;
40
41 let local_var_uri_str = format!("{}/block", 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(&block_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<BlockError> = 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 block_transaction(configuration: &configuration::Configuration, block_transaction_request: models::BlockTransactionRequest) -> Result<models::BlockTransactionResponse, Error<BlockTransactionError>> {
66 let local_var_configuration = configuration;
67
68 let local_var_client = &local_var_configuration.client;
69
70 let local_var_uri_str = format!("{}/block/transaction", 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(&block_transaction_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<BlockTransactionError> = 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