use reqwest;
use super::{Error, configuration};
use crate::apis::ResponseContent;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SearchForAccountsError {
Status400(crate::models::SearchForAccounts400Response),
Status500(crate::models::SearchForAccounts400Response),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SearchForApplicationBoxesError {
Status400(crate::models::SearchForAccounts400Response),
Status404(crate::models::SearchForAccounts400Response),
Status500(crate::models::SearchForAccounts400Response),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SearchForApplicationsError {
Status500(crate::models::SearchForAccounts400Response),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SearchForAssetsError {
Status400(crate::models::SearchForAccounts400Response),
Status500(crate::models::SearchForAccounts400Response),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SearchForBlockHeadersError {
Status404(crate::models::SearchForAccounts400Response),
Status500(crate::models::SearchForAccounts400Response),
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SearchForTransactionsError {
Status400(crate::models::SearchForAccounts400Response),
Status500(crate::models::SearchForAccounts400Response),
UnknownValue(serde_json::Value),
}
#[allow(clippy::too_many_arguments)]
pub async fn search_for_accounts(
configuration: &configuration::Configuration,
asset_id: Option<u64>,
limit: Option<u64>,
next: Option<&str>,
currency_greater_than: Option<u64>,
include_all: Option<bool>,
exclude: Option<Vec<String>>,
currency_less_than: Option<u64>,
auth_addr: Option<&str>,
round: Option<u64>,
application_id: Option<u64>,
) -> Result<crate::models::SearchForAccounts200Response, Error<SearchForAccountsError>> {
let local_var_configuration = configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!("{}/v2/accounts", local_var_configuration.base_path);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = asset_id {
local_var_req_builder =
local_var_req_builder.query(&[("asset-id", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = limit {
local_var_req_builder =
local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = next {
local_var_req_builder =
local_var_req_builder.query(&[("next", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = currency_greater_than {
local_var_req_builder =
local_var_req_builder.query(&[("currency-greater-than", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = include_all {
local_var_req_builder =
local_var_req_builder.query(&[("include-all", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = exclude {
local_var_req_builder = match "csv" {
"multi" => local_var_req_builder.query(
&local_var_str
.iter()
.map(|p| ("exclude".to_owned(), p.to_string()))
.collect::<Vec<(std::string::String, std::string::String)>>(),
),
_ => local_var_req_builder.query(&[(
"exclude",
&local_var_str
.iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(","),
)]),
};
}
if let Some(ref local_var_str) = currency_less_than {
local_var_req_builder =
local_var_req_builder.query(&[("currency-less-than", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = auth_addr {
local_var_req_builder =
local_var_req_builder.query(&[("auth-addr", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = round {
local_var_req_builder =
local_var_req_builder.query(&[("round", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = application_id {
local_var_req_builder =
local_var_req_builder.query(&[("application-id", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<SearchForAccountsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn search_for_application_boxes(
configuration: &configuration::Configuration,
application_id: u64,
limit: Option<u64>,
next: Option<&str>,
) -> Result<
crate::models::SearchForApplicationBoxes200Response,
Error<SearchForApplicationBoxesError>,
> {
let local_var_configuration = configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/v2/applications/{application_id}/boxes",
local_var_configuration.base_path,
application_id = application_id
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = limit {
local_var_req_builder =
local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = next {
local_var_req_builder =
local_var_req_builder.query(&[("next", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<SearchForApplicationBoxesError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn search_for_applications(
configuration: &configuration::Configuration,
application_id: Option<u64>,
creator: Option<&str>,
include_all: Option<bool>,
limit: Option<u64>,
next: Option<&str>,
) -> Result<
crate::models::LookupAccountCreatedApplications200Response,
Error<SearchForApplicationsError>,
> {
let local_var_configuration = configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!("{}/v2/applications", local_var_configuration.base_path);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = application_id {
local_var_req_builder =
local_var_req_builder.query(&[("application-id", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = creator {
local_var_req_builder =
local_var_req_builder.query(&[("creator", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = include_all {
local_var_req_builder =
local_var_req_builder.query(&[("include-all", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = limit {
local_var_req_builder =
local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = next {
local_var_req_builder =
local_var_req_builder.query(&[("next", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<SearchForApplicationsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
#[allow(clippy::too_many_arguments)]
pub async fn search_for_assets(
configuration: &configuration::Configuration,
include_all: Option<bool>,
limit: Option<u64>,
next: Option<&str>,
creator: Option<&str>,
name: Option<&str>,
unit: Option<&str>,
asset_id: Option<u64>,
) -> Result<crate::models::LookupAccountCreatedAssets200Response, Error<SearchForAssetsError>> {
let local_var_configuration = configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!("{}/v2/assets", local_var_configuration.base_path);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = include_all {
local_var_req_builder =
local_var_req_builder.query(&[("include-all", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = limit {
local_var_req_builder =
local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = next {
local_var_req_builder =
local_var_req_builder.query(&[("next", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = creator {
local_var_req_builder =
local_var_req_builder.query(&[("creator", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = name {
local_var_req_builder =
local_var_req_builder.query(&[("name", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = unit {
local_var_req_builder =
local_var_req_builder.query(&[("unit", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = asset_id {
local_var_req_builder =
local_var_req_builder.query(&[("asset-id", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<SearchForAssetsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
#[allow(clippy::too_many_arguments)]
pub async fn search_for_block_headers(
configuration: &configuration::Configuration,
limit: Option<u64>,
next: Option<&str>,
min_round: Option<u64>,
max_round: Option<u64>,
before_time: Option<String>,
after_time: Option<String>,
proposers: Option<Vec<String>>,
expired: Option<Vec<String>>,
absent: Option<Vec<String>>,
) -> Result<crate::models::SearchForBlockHeaders200Response, Error<SearchForBlockHeadersError>> {
let local_var_configuration = configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!("{}/v2/block-headers", local_var_configuration.base_path);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = limit {
local_var_req_builder =
local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = next {
local_var_req_builder =
local_var_req_builder.query(&[("next", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = min_round {
local_var_req_builder =
local_var_req_builder.query(&[("min-round", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = max_round {
local_var_req_builder =
local_var_req_builder.query(&[("max-round", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = before_time {
local_var_req_builder =
local_var_req_builder.query(&[("before-time", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = after_time {
local_var_req_builder =
local_var_req_builder.query(&[("after-time", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = proposers {
local_var_req_builder = match "csv" {
"multi" => local_var_req_builder.query(
&local_var_str
.iter()
.map(|p| ("proposers".to_owned(), p.to_string()))
.collect::<Vec<(std::string::String, std::string::String)>>(),
),
_ => local_var_req_builder.query(&[(
"proposers",
&local_var_str
.iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]),
};
}
if let Some(ref local_var_str) = expired {
local_var_req_builder = match "csv" {
"multi" => local_var_req_builder.query(
&local_var_str
.iter()
.map(|p| ("expired".to_owned(), p.to_string()))
.collect::<Vec<(std::string::String, std::string::String)>>(),
),
_ => local_var_req_builder.query(&[(
"expired",
&local_var_str
.iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]),
};
}
if let Some(ref local_var_str) = absent {
local_var_req_builder = match "csv" {
"multi" => local_var_req_builder.query(
&local_var_str
.iter()
.map(|p| ("absent".to_owned(), p.to_string()))
.collect::<Vec<(std::string::String, std::string::String)>>(),
),
_ => local_var_req_builder.query(&[(
"absent",
&local_var_str
.iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]),
};
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<SearchForBlockHeadersError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
#[allow(clippy::too_many_arguments)]
pub async fn search_for_transactions(
configuration: &configuration::Configuration,
limit: Option<u64>,
next: Option<&str>,
note_prefix: Option<&str>,
tx_type: Option<&str>,
sig_type: Option<&str>,
txid: Option<&str>,
round: Option<u64>,
min_round: Option<u64>,
max_round: Option<u64>,
asset_id: Option<u64>,
before_time: Option<String>,
after_time: Option<String>,
currency_greater_than: Option<u64>,
currency_less_than: Option<u64>,
address: Option<&str>,
address_role: Option<&str>,
exclude_close_to: Option<bool>,
rekey_to: Option<bool>,
application_id: Option<u64>,
) -> Result<crate::models::LookupAccountTransactions200Response, Error<SearchForTransactionsError>>
{
let local_var_configuration = configuration;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!("{}/v2/transactions", local_var_configuration.base_path);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = limit {
local_var_req_builder =
local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = next {
local_var_req_builder =
local_var_req_builder.query(&[("next", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = note_prefix {
local_var_req_builder =
local_var_req_builder.query(&[("note-prefix", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = tx_type {
local_var_req_builder =
local_var_req_builder.query(&[("tx-type", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = sig_type {
local_var_req_builder =
local_var_req_builder.query(&[("sig-type", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = txid {
local_var_req_builder =
local_var_req_builder.query(&[("txid", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = round {
local_var_req_builder =
local_var_req_builder.query(&[("round", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = min_round {
local_var_req_builder =
local_var_req_builder.query(&[("min-round", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = max_round {
local_var_req_builder =
local_var_req_builder.query(&[("max-round", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = asset_id {
local_var_req_builder =
local_var_req_builder.query(&[("asset-id", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = before_time {
local_var_req_builder =
local_var_req_builder.query(&[("before-time", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = after_time {
local_var_req_builder =
local_var_req_builder.query(&[("after-time", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = currency_greater_than {
local_var_req_builder =
local_var_req_builder.query(&[("currency-greater-than", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = currency_less_than {
local_var_req_builder =
local_var_req_builder.query(&[("currency-less-than", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = address {
local_var_req_builder =
local_var_req_builder.query(&[("address", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = address_role {
local_var_req_builder =
local_var_req_builder.query(&[("address-role", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = exclude_close_to {
local_var_req_builder =
local_var_req_builder.query(&[("exclude-close-to", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = rekey_to {
local_var_req_builder =
local_var_req_builder.query(&[("rekey-to", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = application_id {
local_var_req_builder =
local_var_req_builder.query(&[("application-id", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<SearchForTransactionsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}