Skip to content

Commit

Permalink
Refactor SingleClaimableBalanceRequest
Browse files Browse the repository at this point in the history
  • Loading branch information
Eline Jorritsma committed Nov 21, 2023
1 parent 944c79a commit fac07f4
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 30 deletions.
46 changes: 23 additions & 23 deletions src/claimable_balances/single_claimable_balance_request.rs
Original file line number Diff line number Diff line change
@@ -1,21 +1,32 @@
use crate::models::*;

/// SingleClaimableBalanceRequest is the struct that implements the type for the /claimable_balances endpoint to get a single claimable balance
/// [More Details](https://laboratory.stellar.org/#explorer?resource=claimable_balances&endpoint=single&network=test "Single Claimable Balance")
#[derive(Debug)]
pub struct SingleClaimableBalanceRequest {
/// Claimable Balance ID
/// [Stellar Documentation](https://developers.stellar.org/api/resources/claimablebalances/single/ "Claimable Balance ID")
claimable_balance_id: Option<String>,

#[derive(Default, Clone)]
pub struct Id(String);
#[derive(Default, Clone)]
pub struct NoId;

#[derive(Default)]
pub struct SingleClaimableBalanceRequest<I> {
claimable_balance_id: I,
}

impl Request for SingleClaimableBalanceRequest {
fn new() -> Self {
SingleClaimableBalanceRequest {
claimable_balance_id: None,
}
impl SingleClaimableBalanceRequest<NoId> {
pub fn new() -> Self {
SingleClaimableBalanceRequest::default()
}
}

impl<I> SingleClaimableBalanceRequest<I> {
pub fn set_claimable_balance_id(
self,
claimable_balance_id: String,
) -> SingleClaimableBalanceRequest<Id> {
SingleClaimableBalanceRequest { claimable_balance_id: Id(claimable_balance_id) }
}
}

impl Request for SingleClaimableBalanceRequest<Id> {
fn get_path(&self) -> &str {
"/claimable_balances/"
}
Expand All @@ -38,14 +49,3 @@ impl Request for SingleClaimableBalanceRequest {
}
}

/// Returns the claimable balance ID
/// # Arguments
/// * `self` - The request object
/// # Returns
/// The claimable balance ID
impl SingleClaimableBalanceRequest {
pub fn set_claimable_balance_id(&mut self, claimable_balance_id: String) -> &mut Self {
self.claimable_balance_id = Some(claimable_balance_id);
self
}
}
11 changes: 4 additions & 7 deletions src/horizon_client/horizon_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,8 @@ mod tests {

use crate::{
assets::prelude::AllAssetsRequest,
claimable_balances::prelude::SingleClaimableBalanceRequest,
ledgers::prelude::SingleLedgerRequest,
claimable_balances::{prelude::SingleClaimableBalanceRequest, single_claimable_balance_request},
ledgers::{prelude::SingleLedgerRequest, single_ledger_request},
};

use super::*;
Expand Down Expand Up @@ -1130,11 +1130,8 @@ mod tests {
let horizon_client =
HorizonClient::new("https://horizon-testnet.stellar.org".to_string()).unwrap();

// construct request
let mut single_claimable_balance_request = SingleClaimableBalanceRequest::new();
single_claimable_balance_request.set_claimable_balance_id(
"000000006520216af66d20d63a58534d6cbdf28ba9f2a9c1e03f8d9a756bb7d988b29bca".to_string(),
);
let single_claimable_balance_request = SingleClaimableBalanceRequest::new()
.set_claimable_balance_id("000000006520216af66d20d63a58534d6cbdf28ba9f2a9c1e03f8d9a756bb7d988b29bca".to_string());

let single_claimable_balance_response = horizon_client
.get_single_claimable_balance(&single_claimable_balance_request)
Expand Down

0 comments on commit fac07f4

Please sign in to comment.