shopify_client/remote/
mod.rs1use utils::parse_response;
2
3use crate::types::{APIError, GetOrderResp, OrderQueryResp, PatchOrderRequest};
4
5mod utils;
6
7pub async fn patch_order(
8 shop_url: &String,
9 order_id: &String,
10 access_token: &String,
11 patch_request: &PatchOrderRequest,
12) -> Result<GetOrderResp, APIError> {
13 let endpoint = format!("{}/admin/api/2024-07/orders/{}.json", shop_url, order_id);
14
15 let client = reqwest::Client::new();
16 let response = client
17 .put(&endpoint)
18 .header("X-Shopify-Access-Token", access_token)
19 .json(&patch_request)
20 .send()
21 .await;
22
23 match response {
24 Ok(resp) => parse_response::<GetOrderResp>(resp).await,
25 Err(_) => Err(APIError::NetworkError),
26 }
27}
28
29pub async fn get_order_with_name(
30 shop_url: &String,
31 order_name: &String,
32 access_token: &String,
33) -> Result<OrderQueryResp, APIError> {
34 let endpoint = format!(
35 "{}/admin/api/2024-07/orders.json?query=name:%23{}&status=any",
36 shop_url, order_name
37 );
38 let client = reqwest::Client::new();
39 let response = client
40 .get(&endpoint)
41 .header("X-Shopify-Access-Token", access_token)
42 .send()
43 .await;
44
45 match response {
46 Ok(resp) => parse_response::<OrderQueryResp>(resp).await,
47 Err(_) => Err(APIError::NetworkError),
48 }
49}
50
51pub async fn get_order_with_id(
52 shop_url: &String,
53 order_id: &String,
54 access_token: &String,
55) -> Result<GetOrderResp, APIError> {
56 let endpoint = format!("{}/admin/api/2024-07/orders/{}.json", shop_url, order_id);
57
58 let client = reqwest::Client::new();
59 let response = client
60 .get(&endpoint)
61 .header("X-Shopify-Access-Token", access_token)
62 .send()
63 .await;
64
65 match response {
66 Ok(resp) => parse_response::<GetOrderResp>(resp).await,
67 Err(_) => Err(APIError::NetworkError),
68 }
69}