Skip to main content

voltaria_sdk/api/resources/
mod.rs

1//! Service clients and API endpoints
2//!
3//! This module contains client implementations for:
4//!
5//! - **Clients**
6//! - **Sandbox**
7//! - **Accounts**
8//! - **Collections**
9//! - **Documents**
10//! - **Investors**
11//! - **Installments**
12//! - **Loans**
13//! - **Partners**
14//! - **Recoveries**
15//! - **Webhooks**
16//! - **Repayments**
17//! - **Drawdowns**
18
19use crate::{ApiError, ClientConfig};
20
21pub mod accounts;
22pub mod clients;
23pub mod collections;
24pub mod documents;
25pub mod drawdowns;
26pub mod installments;
27pub mod investors;
28pub mod loans;
29pub mod partners;
30pub mod recoveries;
31pub mod repayments;
32pub mod sandbox;
33pub mod webhooks;
34pub struct ApiClient {
35    pub config: ClientConfig,
36    pub clients: ClientsClient,
37    pub sandbox: SandboxClient,
38    pub accounts: AccountsClient,
39    pub collections: CollectionsClient,
40    pub documents: DocumentsClient,
41    pub investors: InvestorsClient,
42    pub installments: InstallmentsClient,
43    pub loans: LoansClient,
44    pub partners: PartnersClient,
45    pub recoveries: RecoveriesClient,
46    pub webhooks: WebhooksClient,
47    pub repayments: RepaymentsClient,
48    pub drawdowns: DrawdownsClient,
49}
50
51impl ApiClient {
52    pub fn new(config: ClientConfig) -> Result<Self, ApiError> {
53        Ok(Self {
54            config: config.clone(),
55            clients: ClientsClient::new(config.clone())?,
56            sandbox: SandboxClient::new(config.clone())?,
57            accounts: AccountsClient::new(config.clone())?,
58            collections: CollectionsClient::new(config.clone())?,
59            documents: DocumentsClient::new(config.clone())?,
60            investors: InvestorsClient::new(config.clone())?,
61            installments: InstallmentsClient::new(config.clone())?,
62            loans: LoansClient::new(config.clone())?,
63            partners: PartnersClient::new(config.clone())?,
64            recoveries: RecoveriesClient::new(config.clone())?,
65            webhooks: WebhooksClient::new(config.clone())?,
66            repayments: RepaymentsClient::new(config.clone())?,
67            drawdowns: DrawdownsClient::new(config.clone())?,
68        })
69    }
70}
71
72pub use accounts::AccountsClient;
73pub use clients::ClientsClient;
74pub use collections::CollectionsClient;
75pub use documents::DocumentsClient;
76pub use drawdowns::DrawdownsClient;
77pub use installments::InstallmentsClient;
78pub use investors::InvestorsClient;
79pub use loans::LoansClient;
80pub use partners::PartnersClient;
81pub use recoveries::RecoveriesClient;
82pub use repayments::RepaymentsClient;
83pub use sandbox::SandboxClient;
84pub use webhooks::WebhooksClient;