shopify_client/admin/storefront_access_token/
remote.rs1use crate::common::ServiceContext;
2use crate::{
3 common::{http::execute_graphql, types::APIError},
4 types::storefront_access_token::{
5 ListStorefrontAccessTokensResp, StorefrontAccessTokenCreateInput,
6 StorefrontAccessTokenCreateResp, StorefrontAccessTokenDeleteInput,
7 StorefrontAccessTokenDeleteResp,
8 },
9};
10
11use serde_json::json;
12
13pub async fn list_storefront_access_tokens(
14 ctx: &ServiceContext,
15) -> Result<ListStorefrontAccessTokensResp, APIError> {
16 let query = r#"
17 query {
18 shop {
19 storefrontAccessTokens(first: 100) {
20 edges {
21 node {
22 id
23 accessToken
24 accessScopes {
25 handle
26 }
27 createdAt
28 title
29 updatedAt
30 }
31 }
32 pageInfo {
33 hasNextPage
34 endCursor
35 }
36 }
37 }
38 }
39 "#;
40
41 let variables = json!({});
42
43 execute_graphql(ctx, query, variables).await
44}
45
46pub async fn create_storefront_access_token(
47 ctx: &ServiceContext,
48 input: &StorefrontAccessTokenCreateInput,
49) -> Result<StorefrontAccessTokenCreateResp, APIError> {
50 let query = r#"
51 mutation storefrontAccessTokenCreate($input: StorefrontAccessTokenInput!) {
52 storefrontAccessTokenCreate(input: $input) {
53 storefrontAccessToken {
54 id
55 accessToken
56 accessScopes {
57 handle
58 }
59 createdAt
60 title
61 }
62 userErrors {
63 field
64 message
65 }
66 }
67 }
68 "#;
69
70 let variables = json!({
71 "input": {
72 "title": input.title
73 }
74 });
75
76 execute_graphql(ctx, query, variables).await
77}
78
79pub async fn delete_storefront_access_token(
80 ctx: &ServiceContext,
81 input: &StorefrontAccessTokenDeleteInput,
82) -> Result<StorefrontAccessTokenDeleteResp, APIError> {
83 let query = r#"
84 mutation storefrontAccessTokenDelete($input: StorefrontAccessTokenDeleteInput!) {
85 storefrontAccessTokenDelete(input: $input) {
86 deletedStorefrontAccessTokenId
87 userErrors {
88 field
89 message
90 }
91 }
92 }
93 "#;
94
95 let variables = json!({
96 "input": {
97 "id": input.id
98 }
99 });
100
101 execute_graphql(ctx, query, variables).await
102}