shopify_client/services/cart_transform/
mod.rs1pub 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}