use crate::{models::*, BuildQueryParametersExt};
use stellar_rust_sdk_derive::pagination;
#[pagination]
#[derive(Default)]
pub struct AllTransactionsRequest {
include_failed: Option<IncludeFailed>,
}
impl Request for AllTransactionsRequest {
fn get_query_parameters(&self) -> String {
vec![
self.include_failed
.as_ref()
.map(|i| format!("include_failed={}", i)),
self.cursor.as_ref().map(|c| format!("cursor={}", c)),
self.limit.as_ref().map(|l| format!("limit={}", l)),
self.order.as_ref().map(|o| format!("order={}", o)),
]
.build_query_parameters()
}
fn build_url(&self, base_url: &str) -> String {
format!(
"{}/{}{}",
base_url,
super::TRANSACTIONS_PATH,
self.get_query_parameters()
)
}
}
impl AllTransactionsRequest {
pub fn new() -> Self {
AllTransactionsRequest::default()
}
pub fn set_include_failed(
self,
include_failed: IncludeFailed,
) -> Result<AllTransactionsRequest, String> {
Ok(AllTransactionsRequest {
include_failed: Some(include_failed),
..self
})
}
}