square_api_client/
square_client.rs

1//! Gateway for the API
2
3use crate::{api::*, config::Configuration, http::client::HttpClient, models::errors::ApiError};
4
5/// Gateway struct for the library.
6/// This struct acts as a factory for Apis.
7/// It holds the state of the SDK.
8pub struct SquareClient {
9    // pub mobile_authorization: MobileAuthorizationApi,
10    // pub o_auth: OAuthApi,
11    pub apple_pay: ApplePayApi,
12    // pub bank_accounts: BankAccountsApi,
13    // pub bookings: BookingsApi,
14    pub cards: CardsApi,
15    // pub cash_drawers: CashDrawersApi,
16    pub catalog: CatalogApi,
17    pub customers: CustomersApi,
18    pub customer_groups: CustomerGroupsApi,
19    pub customer_segments: CustomerSegmentsApi,
20    // pub devices: DevicesApi,
21    // pub disputes: DisputesApi,
22    // pub employees: EmployeesApi,
23    pub gift_cards: GiftCardsApi,
24    pub gift_card_activities: GiftCardActivitiesApi,
25    pub inventory: InventoryApi,
26    pub invoices: InvoicesApi,
27    // pub labor: LaborApi,
28    pub locations: LocationsApi,
29    // pub checkout: CheckoutApi,
30    // pub transactions: TransactionsApi,
31    // pub loyalty: LoyaltyApi,
32    // pub merchants: MerchantsApi,
33    pub orders: OrdersApi,
34    pub payments: PaymentsApi,
35    pub refunds: RefundsApi,
36    // pub sites: SitesApi,
37    // pub snippets: SnippetsApi,
38    pub subscriptions: SubscriptionsApi,
39    pub team: TeamApi,
40    // pub terminal: TerminalApi,
41    // pub config: Configuration,
42    // pub http_client: HttpClient,
43    // pub http_client_config: HttpClientConfiguration,
44    // pub additional_headers: Headers,
45    // pub user_agent_detail: String,
46    // pub bearer_auth_manager: BearerAuthManager,
47    // pub auth_managers: HashMap<String, AuthManager>,
48    // pub http_callback: HttpCallback,
49}
50
51impl SquareClient {
52    pub fn try_new(config: Configuration) -> Result<Self, ApiError> {
53        let http_client = HttpClient::try_new(&config.http_client_config)?;
54
55        let this: SquareClient = Self {
56            apple_pay: ApplePayApi::new(config.clone(), http_client.clone()),
57            cards: CardsApi::new(config.clone(), http_client.clone()),
58            catalog: CatalogApi::new(config.clone(), http_client.clone()),
59            customer_groups: CustomerGroupsApi::new(config.clone(), http_client.clone()),
60            customer_segments: CustomerSegmentsApi::new(config.clone(), http_client.clone()),
61            customers: CustomersApi::new(config.clone(), http_client.clone()),
62            gift_card_activities: GiftCardActivitiesApi::new(config.clone(), http_client.clone()),
63            gift_cards: GiftCardsApi::new(config.clone(), http_client.clone()),
64            inventory: InventoryApi::new(config.clone(), http_client.clone()),
65            invoices: InvoicesApi::new(config.clone(), http_client.clone()),
66            locations: LocationsApi::new(config.clone(), http_client.clone()),
67            orders: OrdersApi::new(config.clone(), http_client.clone()),
68            payments: PaymentsApi::new(config.clone(), http_client.clone()),
69            refunds: RefundsApi::new(config.clone(), http_client.clone()),
70            subscriptions: SubscriptionsApi::new(config.clone(), http_client.clone()),
71            team: TeamApi::new(config, http_client),
72        };
73
74        Ok(this)
75    }
76}