Skip to main content

shopify_client/services/cart_transform/
mod.rs

1pub mod remote;
2
3use std::sync::Arc;
4
5use crate::{
6    common::types::{APIError, RequestCallbacks},
7    types::cart_transform::{
8        CartTransformCreateInput, CartTransformCreateResp, MetafieldsSetInput, MetafieldsSetResp,
9    },
10};
11
12pub struct CartTransform {
13    pub shop_url: Arc<String>,
14    pub version: Arc<String>,
15    pub access_token: Arc<String>,
16    pub callbacks: Arc<RequestCallbacks>,
17}
18
19impl CartTransform {
20    pub fn new(
21        shop_url: Arc<String>,
22        version: Arc<String>,
23        access_token: Arc<String>,
24        callbacks: Arc<RequestCallbacks>,
25    ) -> Self {
26        CartTransform {
27            shop_url,
28            version,
29            access_token,
30            callbacks,
31        }
32    }
33
34    pub async fn create(
35        &self,
36        input: &CartTransformCreateInput,
37    ) -> Result<CartTransformCreateResp, APIError> {
38        remote::create_cart_transform(
39            &self.shop_url,
40            &self.version,
41            &self.access_token,
42            &self.callbacks,
43            input,
44        )
45        .await
46    }
47
48    pub async fn set_metafields(
49        &self,
50        metafields: &[MetafieldsSetInput],
51    ) -> Result<MetafieldsSetResp, APIError> {
52        remote::set_metafields(
53            &self.shop_url,
54            &self.version,
55            &self.access_token,
56            &self.callbacks,
57            metafields,
58        )
59        .await
60    }
61}