shopify_client/remote/
mod.rs

1use 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}