shopify_client/
lib.rs

1use std::sync::Arc;
2
3pub mod common;
4pub mod services;
5pub mod types;
6pub mod webhooks;
7
8pub struct ShopifyClient {
9    pub order: services::order::Order,
10    pub subscription: services::subscription::Subscription,
11}
12
13impl ShopifyClient {
14    pub fn new(shop_url: String, access_token: String, api_version: Option<String>) -> Self {
15        let api_version = api_version.unwrap_or("2024-07".to_string());
16        let shop_url_arc = Arc::new(shop_url);
17        let api_version_arc = Arc::new(api_version);
18        let access_token_arc = Arc::new(access_token);
19
20        ShopifyClient {
21            order: services::order::Order::new(
22                Arc::clone(&shop_url_arc),
23                Arc::clone(&api_version_arc),
24                Arc::clone(&access_token_arc),
25            ),
26            subscription: services::subscription::Subscription::new(
27                Arc::clone(&shop_url_arc),
28                Arc::clone(&api_version_arc),
29                Arc::clone(&access_token_arc),
30            ),
31        }
32    }
33}