use crate::{models::*, BuildQueryParametersExt};
use stellar_rust_sdk_derive::pagination;
#[pagination]
#[derive(Default)]
pub struct LedgersRequest {
}
impl LedgersRequest {
pub fn new() -> Self {
LedgersRequest::default()
}
}
impl Request for LedgersRequest {
fn get_query_parameters(&self) -> String {
vec![
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::LEDGERS_PATH,
self.get_query_parameters()
)
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_ledgers_request() {
let request = LedgersRequest::new();
assert_eq!(
request.build_url("https://horizon-testnet.stellar.org"),
"https://horizon-testnet.stellar.org/ledgers"
);
}
}