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//! - **Webhooks**
15//! - **Repayments**
16//! - **Drawdowns**
17
18use crate::{ApiError, ClientConfig};
19
20pub mod accounts;
21pub mod clients;
22pub mod collections;
23pub mod documents;
24pub mod drawdowns;
25pub mod installments;
26pub mod investors;
27pub mod loans;
28pub mod partners;
29pub mod repayments;
30pub mod sandbox;
31pub mod webhooks;
32pub struct ApiClient {
33    pub config: ClientConfig,
34    pub clients: ClientsClient,
35    pub sandbox: SandboxClient,
36    pub accounts: AccountsClient,
37    pub collections: CollectionsClient,
38    pub documents: DocumentsClient,
39    pub investors: InvestorsClient,
40    pub installments: InstallmentsClient,
41    pub loans: LoansClient,
42    pub partners: PartnersClient,
43    pub webhooks: WebhooksClient,
44    pub repayments: RepaymentsClient,
45    pub drawdowns: DrawdownsClient,
46}
47
48impl ApiClient {
49    pub fn new(config: ClientConfig) -> Result<Self, ApiError> {
50        Ok(Self {
51            config: config.clone(),
52            clients: ClientsClient::new(config.clone())?,
53            sandbox: SandboxClient::new(config.clone())?,
54            accounts: AccountsClient::new(config.clone())?,
55            collections: CollectionsClient::new(config.clone())?,
56            documents: DocumentsClient::new(config.clone())?,
57            investors: InvestorsClient::new(config.clone())?,
58            installments: InstallmentsClient::new(config.clone())?,
59            loans: LoansClient::new(config.clone())?,
60            partners: PartnersClient::new(config.clone())?,
61            webhooks: WebhooksClient::new(config.clone())?,
62            repayments: RepaymentsClient::new(config.clone())?,
63            drawdowns: DrawdownsClient::new(config.clone())?,
64        })
65    }
66}
67
68pub use accounts::AccountsClient;
69pub use clients::ClientsClient;
70pub use collections::CollectionsClient;
71pub use documents::DocumentsClient;
72pub use drawdowns::DrawdownsClient;
73pub use installments::InstallmentsClient;
74pub use investors::InvestorsClient;
75pub use loans::LoansClient;
76pub use partners::PartnersClient;
77pub use repayments::RepaymentsClient;
78pub use sandbox::SandboxClient;
79pub use webhooks::WebhooksClient;