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