Skip to main content

shopify_client/services/storefront_access_token/
mod.rs

1pub mod remote;
2
3use std::sync::Arc;
4
5use crate::{
6    common::types::{APIError, RequestCallbacks},
7    types::storefront_access_token::{
8        ListStorefrontAccessTokensResp, StorefrontAccessTokenCreateInput,
9        StorefrontAccessTokenCreateResp, StorefrontAccessTokenDeleteInput,
10        StorefrontAccessTokenDeleteResp,
11    },
12};
13
14pub struct StorefrontAccessToken {
15    pub shop_url: Arc<String>,
16    pub version: Arc<String>,
17    pub access_token: Arc<String>,
18    pub callbacks: Arc<RequestCallbacks>,
19}
20
21impl StorefrontAccessToken {
22    pub fn new(
23        shop_url: Arc<String>,
24        version: Arc<String>,
25        access_token: Arc<String>,
26        callbacks: Arc<RequestCallbacks>,
27    ) -> Self {
28        StorefrontAccessToken {
29            shop_url,
30            version,
31            access_token,
32            callbacks,
33        }
34    }
35
36    pub async fn list(&self) -> Result<ListStorefrontAccessTokensResp, APIError> {
37        remote::list_storefront_access_tokens(
38            &self.shop_url,
39            &self.version,
40            &self.access_token,
41            &self.callbacks,
42        )
43        .await
44    }
45
46    pub async fn create(
47        &self,
48        input: &StorefrontAccessTokenCreateInput,
49    ) -> Result<StorefrontAccessTokenCreateResp, APIError> {
50        remote::create_storefront_access_token(
51            &self.shop_url,
52            &self.version,
53            &self.access_token,
54            &self.callbacks,
55            input,
56        )
57        .await
58    }
59
60    pub async fn delete(
61        &self,
62        input: &StorefrontAccessTokenDeleteInput,
63    ) -> Result<StorefrontAccessTokenDeleteResp, APIError> {
64        remote::delete_storefront_access_token(
65            &self.shop_url,
66            &self.version,
67            &self.access_token,
68            &self.callbacks,
69            input,
70        )
71        .await
72    }
73}